天天看點

[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.

--至于公元前的日期很少用,不在探究了.

--我參考了連結:

<a href="http://blog.itpub.net/4227/viewspace-68517/">http://blog.itpub.net/4227/viewspace-68517/</a>

<a href="http://blog.itpub.net/4227/viewspace-68514/">http://blog.itpub.net/4227/viewspace-68514/</a>