[20150414]oracle日期存储.txt

[20150414]oracle日期存储.txt

--以前自己没有注意的问题,自己学习看看.

SCOTT@test> @ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SCOTT@test> select dump(hiredate) c40 ,hiredate,dump(sysdate) c40,sysdate from emp where rownum=1;
C40                                      HIREDATE            C40                                      SYSDATE
---------------------------------------- ------------------- ---------------------------------------- -------------------
Typ=12 Len=7: 119,180,12,17,1,1,1        1980-12-17 00:00:00 Typ=13 Len=8: 223,7,4,14,9,28,52,0       2015-04-14 09:28:52

--可以发现SQL语句中对SYSDATE,以及dump表中的日期型不一样.

--dump(sysdate)可以类型Typ=13 Len=8.后面多了一个0,月日时分秒保持一致.年

SCOTT@test> @10to16 2015
10 to 16 HEX   REVERSE16
-------------- ------------------
00000000007df 0xdf070000


SCOTT@test> @16to10 df
16 to 10 DEC
------------
         223

--可以年转换成16进制,小头在前,大头在后.
SCOTT@test> select 7*256+223 from dual ;
7*256+223
----------
      2015

--而保存在数据块的日期类型是Typ=12 Len=7.
--保存在数据块的时分秒存在0的情况,基本为了回避都是在原来的基础上加1.
--而月日不存在0的情况,保持不动.
--而年月仔细查看可以看出是原来的基础上加100.

--至于公元前的日期很少用,不在探究了.
--我参考了链接:

http://blog.itpub.net/4227/viewspace-68517/
http://blog.itpub.net/4227/viewspace-68514/

上一篇:SharePoint 2007 管理中心TimerJob”计时器作业定义”页面报错


下一篇:怎么在Eclipse中添加VI插件