oracle中日期型数据长度有什么不同

oracle中日期型数据长度有什么不同,第1张

oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享:

注:由于INTERVAL及TIME ZONE实际用得比较少,所以本文内容未涉及这两个方面。

1、常用日期型数据类型

11、DATE

这是ORACLE最常用的日期类型,它可以保存日期和时间,常用日期处理都可以采用这种类型。DATE表示的日期范围可以是公元前4712年1月1日至公元9999年12月31日

date类型在数据库中的存储固定为7个字节,格式为:

第1字节:世纪+100

第2字节:年

第3字节:月

第4字节:天

第5字节:小时+1

第6字节:分+1

第7字节:秒+1

12、TIMESTAMP(p)

这也是ORACLE常用的日期类型,它与date的区别是不仅可以保

存日期和时间,还能保存小数秒,小数位数可以指定为0-9,默认为6位,所以最高精度可以到ns(纳秒),数据库内部用7或者11个字节存储,如果精度为

0,则用7字节存储,与date类型功能相同,如果精度大于0则用11字节存储。

格式为:

第1字节:世纪+100

第2字节:年

第3字节:月

第4字节:天

第5字节:小时+1

第6字节:分+1

第7字节:秒+1

第8-11字节:纳秒,采用4个字节存储,内部运算类型为整形

注:TIMESTAMP日期类型如果与数值进行加减运算会自动转换为DATE型,也就是说小数秒会自动去除。

13、DATE与TIMESTAMP类型内部存储验证

1 create table T

2 (

3 C1 DATE,

4 C2 TIMESTAMP(9)

5 );

6

7 insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52234123211');

8 insert into t(c1,c2) values(

9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),

10 to_timestamp('2010-2-12 13:24:52123456','YYYY-MM-DD HH24:MI:SSFF6')

11 );

12

13 SQL> select c1,dump(c1) c1_d,c2,dump(c2) c2_d from t;

insert into your_table values

(

to_timestamp(2011-12-5 10:20:18833000','yyyy-mm-dd hh24:mi:ssff'

);

可以

oracle数据库建表date,Oracle数据库中关于日期和时间字段类型 转载

2021-04-02 21:03:04

GUlijiwa古力

码龄4年

关注

Oracle数据库

与日期有关的有三种类型:date,timestamp与interval。DATE和TIMESTAMP类型存储精度可变的固定日期/时间,二者区别是,后者秒可以精确到小数,另外还可以有时区之分。。INTERVAL类型可以很容易地存储一个时间量,如“8个小时”或“30天”。将两个日期相减,就会得到一个时间间隔(INTERVAL);例如,将8小时间隔加到一个TIMESTAMP上,会得到8小时以后的一个新的TIMESTAMP。

*** 作日期有关字段的时候,最好显示地指定日期或时间格式,比如:

Insert into t ( date_column ) values ( to_date( '01/02/2003', 'DD/MM/YYYY' ) );避免各种格式造成混乱。

1 DATE类型介绍

DATE类型是一个7字节的定宽日期/时间数据类型。它总是包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。这七个字节分别存储的是这7个属性,比如:2005-12-05 12:30:43存储的是120,105,12,5,12,31,44。世纪和年份分别加了100,分钟和秒钟分别加了1。世纪和年份加100是为了区分公元前和公元后。我们经常使用这样的条件,Where to_char(date_column,'yyyy') = '2005',其实这个地方可以换成:Where trunc(date_column,'y') = to_date('01-jan-2005','dd-mon-yyyy')。因为,trunc函数是在日期上将年份后面5个字节清空,而to_char函数,还要转换成字符串。当然,如果能够不使用函数最好,比如:created >= to_date('01-jan-2005','dd-mon-yyyy') and created < to_date('01-jan-2006','dd-mon-yyyy');这样如果在created列上建立了索引,还能使用索引。

以上就是关于oracle中日期型数据长度有什么不同全部的内容,包括:oracle中日期型数据长度有什么不同、若插入“05-12月-11 10.20.18.833000 上午”格式的日期到oracle数据库,列类型为timestamp,其格式要怎写、oracle数据库建表语句可以指定date字段的格式吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9754823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存