當前位置:首頁 » 操作系統 » oracle資料庫日期格式

oracle資料庫日期格式

發布時間: 2023-07-23 09:00:51

㈠ Oracle基本數據類型存儲格式淺析—日期類型(3)

對於公元前的日期 Oracle從 開始保存 公元前的年的保存的值和對應的公元後的年的值相加的和是 如上例中的公元 年和公元前 年的值相加 + = + =

SQL中DATE類型最後還包括一個 似乎目前沒有使用

SQL> CREATE TABLE TEST_TIMESTAMP(TIME TIMESTAMP( ) TIME TIMESTAMP( ) WITH LOCAL TIME ZONE TIME TIMESTAMP( ) WITH TIME ZONE);

表已創建

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

SQL> SELECT * FROM TEST_TIMESTAMP;

TIME TIME TIME 月 下午 月 下午 月 下午 + :

SQL> SELECT DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) FROM TEST_TIMESTAMP;

DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) Typ= Len= : b b fc c Typ= Len= : b b fc c Typ= Len= : b b fc c c c

可以發現 如果客戶端和資料庫中的時區是一致的 那麼TIMESTAMP和TIMESTAMP WITH LOCAL TIME ZONE存儲的數據是完全一樣的

TIMESTAMP WITH TIME ZONE則略有不同 它保存的是 時區的時間 和所處的時區信息

修改客戶端主機的時區 由東 區(+ 區)改為 時區

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

修改客戶端主機的時區 改為西 區( 時區)

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

修改客戶端主機的時區 改為西 區( 時區)

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

修改客戶端主機的時區 改為東 區(+ 時區)

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

修改客戶端主機的時區 改為西 區( 時區)

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

修改客戶端主機的時區 改為東 區(+ 時區)

SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

已創建 行

SQL> MIT;

提交完成

修改客戶端主機的時區 改回東 區(+ 時區)

SQL> SELECT * FROM TEST_TIMESTAMP;

TIME TIME TIME 月 下午 月 下午 月 下午 + :

月 下午 月 下午 月 下午 + :

月 上午 月 下午 月 上午 :

月 上午 月 下午 月 上午 :

月 上午 月 下午 月 上午 + :

月 下午 月 上午 月 下午 :

月 上午 月 上午 月 上午 + :

已選擇 行

SQL> SELECT DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) FROM TEST_TIMESTAMP;

DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) Typ= Len= : b b fc c Typ= Len= : b b fc c Typ= Len= : b b fc c c c

Typ= Len= : b c c c e Typ= Len= : b c c c e Typ= Len= : b c c c e c

Typ= Len= : b b f a d c c Typ= Len= : b f a d c c Typ= Len= : b f a d c c f c

Typ= Len= : b b a f Typ= Len= : b b a f Typ= Len= : b b a f c

Typ= Len= : c f d Typ= Len= : b f d Typ= Len= : b f d c

Typ= Len= : b f cb bb c Typ= Len= : c e cb bb c Typ= Len= : b e cb bb c e

Typ= Len= : c b b Typ= Len= : c f b b Typ= Len= : b f b b d a

SQL> SELECT TO_NUMBER( C XXX ) TO_NUMBER( C XXX ) FROM DUAL;

TO_NUMBER( C XXX ) TO_NUMBER( C XXX )

SQL> SELECT TO_NUMBER( XXX ) TO_NUMBER( C XXX ) TO_NUMBER( C XXXXXXX ) FROM DUAL;

TO_NUMBER( XXX ) TO_NUMBER( C XXX )

SQL> SELECT TO_NUMBER( C XXX ) TO_NUMBER( E XXX ) TO_NUMBER( A XXX ) FROM DUAL;

TO_NUMBER( C XXX ) TO_NUMBER( E XXX ) TO_NUMBER( A XXX )

可以看出 修改時區會導致系統TIMESTAMP時間發生變化 但是對於TIMESTAMP WITH LOCAL TIME ZONE類型 總是將系統的時間轉化到資料庫伺服器上時區的時間進行存儲

TIMESTAMP WITH TIME ZONE保存的是當前時間轉化到 時區的對應的時間 並通過最後兩位來保存時區信息

第一位表示時區的小時部分 時區用 x 表示 東n區在這個基礎上加n 西n區在這個基礎上減n 我們所處的東 區表示為 x C 西 區表示為 xF

lishixin/Article/program/Oracle/201311/18690

熱點內容
mavendebug源碼 發布:2025-03-15 12:17:45 瀏覽:154
訪問學者的要求 發布:2025-03-15 12:10:53 瀏覽:554
學編程難嗎 發布:2025-03-15 12:07:00 瀏覽:73
我的世界國際伺服器怎麼漢化 發布:2025-03-15 12:02:21 瀏覽:297
對編程的理解 發布:2025-03-15 12:02:16 瀏覽:780
linuxvim刪除 發布:2025-03-15 12:02:15 瀏覽:929
同花順伺服器地址選哪個好 發布:2025-03-15 12:00:48 瀏覽:532
編譯原理計算器 發布:2025-03-15 11:59:14 瀏覽:473
ubuntu內核編譯時中途停止 發布:2025-03-15 11:54:47 瀏覽:593
pythoninitialize 發布:2025-03-15 11:49:56 瀏覽:569