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

如题所述

第1个回答  2022-11-16
oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享:\x0d\x0a注:由于INTERVAL及TIME ZONE实际用得比较少,所以本文内容未涉及这两个方面。\x0d\x0a\x0d\x0a1、常用日期型数据类型\x0d\x0a1.1、DATE\x0d\x0a这是ORACLE最常用的日期类型,它可以保存日期和时间,常用日期处理都可以采用这种类型。DATE表示的日期范围可以是公元前4712年1月1日至公元9999年12月31日\x0d\x0adate类型在数据库中的存储固定为7个字节,格式为:\x0d\x0a 第1字节:世纪+100\x0d\x0a 第2字节:年\x0d\x0a 第3字节:月\x0d\x0a 第4字节:天\x0d\x0a 第5字节:小时+1\x0d\x0a 第6字节:分+1\x0d\x0a 第7字节:秒+1\x0d\x0a\x0d\x0a1.2、TIMESTAMP(p)\x0d\x0a这也是ORACLE常用的日期类型,它与date的区别是不仅可以保\x0d\x0a存日期和时间,还能保存小数秒,小数位数可以指定为0-9,默认为6位,所以最高精度可以到ns(纳秒),数据库内部用7或者11个字节存储,如果精度为\x0d\x0a0,则用7字节存储,与date类型功能相同,如果精度大于0则用11字节存储。\x0d\x0a格式为:\x0d\x0a 第1字节:世纪+100\x0d\x0a 第2字节:年\x0d\x0a 第3字节:月\x0d\x0a 第4字节:天\x0d\x0a 第5字节:小时+1\x0d\x0a 第6字节:分+1\x0d\x0a 第7字节:秒+1\x0d\x0a 第8-11字节:纳秒,采用4个字节存储,内部运算类型为整形\x0d\x0a\x0d\x0a注:TIMESTAMP日期类型如果与数值进行加减运算会自动转换为DATE型,也就是说小数秒会自动去除。\x0d\x0a\x0d\x0a1.3、DATE与TIMESTAMP类型内部存储验证\x0d\x0a\x0d\x0a1 create table T\x0d\x0a 2 (\x0d\x0a 3 C1 DATE,\x0d\x0a 4 C2 TIMESTAMP(9)\x0d\x0a 5 );\x0d\x0a 6 \x0d\x0a 7 insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52.234123211');\x0d\x0a 8 insert into t(c1,c2) values(\x0d\x0a 9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),\x0d\x0a10 to_timestamp('2010-2-12 13:24:52.123456','YYYY-MM-DD HH24:MI:SS.FF6')\x0d\x0a11 );\x0d\x0a12 \x0d\x0a13 SQL> select c1,dump(c1) c1_d,c2,dump(c2) c2_d from t;
相似回答
大家正在搜