oracle 存date类型,浅析Oracle对date日期格式的存储

阅读: 评论:0

oracle 存date类型,浅析Oracle对date日期格式的存储

oracle 存date类型,浅析Oracle对date日期格式的存储

这两天有一套库报了ORA-01841错误,于是好好的研究了一下Oracle对Date类型日期格式的存储方式。那么对于date类型的日期,Oracle在底层会以7个byte来进行存储。分别是世纪、年、月、日、小时、分钟和秒。Oracle内部存储date结构如下:

BYTE  Meaning

----  -------

1   Century    -- stored in excess-100 notation

2   Year       -- stored in excess-100 notation

3   Month      -- stored in 0 base notation

4   Day        -- stored in 0 base notation

5   Hour       -- stored in excess-1 notation

6   Minute     -- stored in excess-1 notation

7   Second     -- stored in excess-1 notation

说这些比较抽象,我们先来看个例子。

SQL> select to_char(HIREDATE,'YYYY-MM-DD HH24:MI:SS') from emp where rownum<=1;

TO_CHAR(HIREDATE,'Y

-------------------

1980-12-17 00:00:00

SQL> select rowid from emp where rownum<=1;

ROWID

------------------

AAASZHAAEAAAACXAAA

SQL> select wid_block_number('AAASZHAAEAAAACXAAA') from dual;

DBMS_ROWID.ROWID_BLOCK_NUMBER('AAASZHAAEAAAACXAAA')

---------------------------------------------------

151

这里我们查出来该日期数据存在于文件4的151号块当中,我们使用bbed来查看数据库内部是怎么存储日期数据的。

BBED> set dba 4,151

DBA             0x01000097 (16777367 4,151)

BBED> p kdbr

sb2 kdbr[0]                                 @118      8050

sb2 kdbr[1]                                 @120      8007

sb2 kdbr[2]                                 @122      7964

本文发布于:2024-02-01 16:33:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677639537974.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:日期   类型   格式   oracle   date
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23