如果直接在SQL语句中对SYSDATE或由TO_DATE函数生成日期进行DUMP操作,会发现得到的结果与DUMP数据库中保存的日期的结果不一样。
SQL> truncate table test_date; 表已截掉。 SQL> insert into test_date values (to_date('2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss')); 已创建 1 行。 SQL> col dump_date format a65 SQL> select to_char(date_col, 'syyyy-mm-dd hh24:mi:ss') dat, dump(date_col) dump_date from test_date; DAT DUMP_DATE -------------------- --------------------------------------------------------- 2004-12-17 16:42:42 Typ=12 Len=7: 120,104,12,17,17,43,43 SQL> select to_char(to_date('2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss'), 'syyyy-mm-dd hh24:mi:ss') dat, 2 dump(to_date('2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss')) dump_date from dual; DAT DUMP_DATE -------------------- --------------------------------------------------------- 2004-12-17 16:42:42 Typ=13 Len=8: 212,7,12,17,16,42,42,0
复制
存储在数据库中的DATE类型是12,而直接在SQL中使用的DATE类型是13。而且二者的长度以及表示方式都不相同。这两种类型的不同指出主要体现在两点:一:时、分、秒的表示不同;二、世纪和年的表示不同。
SQL中使用DATE的时分秒没有采用加1存储方式,而且原值存储。
SQL中使用DATE没有采用世纪、年的方式保持,而是采用了按数值保存的方式。第一位表示低位,第二位表示高位。低位表示最大的值是255。如上面的例子中,212+7×256=2004。
SQL> select to_char(to_date('-2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss'), 'syyyy-mm-dd hh24:mi:ss') dat, 2 dump(to_date('-2004-12-17 16:42:42', 'syyyy-mm-dd hh24:mi:ss')) dump_date from dual; DAT DUMP_DATE -------------------- --------------------------------------------------- -2004-12-17 16:42:42 Typ=13 Len=8: 44,248,12,17,16,42,42,0 SQL> select dump(to_date('-1-1-1', 'syyyy-mm-dd')) from dual; DUMP(TO_DATE('-1-1-1','SYYYY-MM-D --------------------------------- Typ=13 Len=8: 255,255,1,1,0,0,0,0
复制
对于公元前的日期,Oracle从255,255开始保存。公元前的年的保存的值和对应的公元后的年的值相加的和是256,255。如上例中的公元2004年和公元前2004年的值相加:212+44=256,7+248=255。
SQL中DATE类型最后还包括一个0,似乎目前没有使用。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
786次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
664次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
591次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
547次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
531次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
510次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
495次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
469次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
382次阅读
2025-05-05 19:28:36
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
382次阅读
2025-04-15 14:48:05