日期格式

在 Oracle 中,DATE 資料型別沒有格式; 當 Oracle 將 DATE 傳送到客戶端程式(SQL / Plus,SQL / Developer,Toad,Java,Python 等)時,它將傳送代表日期的 7 或 8 個位元組。

未儲存在表中的 DATE(即由 SYSDATE 生成並在使用 DUMP() 命令時具有“型別 13”)具有 8 位元組並具有結構(右側的數字是 2012-11-26 16:41:09 的內部表示):

BYTE VALUE                           EXAMPLE
---- ------------------------------- --------------------------------------
1    Year modulo 256                 220
2    Year multiples of 256           7   (7 * 256 + 220 = 2012)
3    Month                           11
4    Day                             26
5    Hours                           16
6    Minutes                         41
7    Seconds                         9
8    Unused                          0

儲存在表中的 DATE(使用 DUMP() 命令時為 type 12)具有 7 位元組並具有結構(右側的數字是 2012-11-26 16:41:09 的內部表示):

BYTE VALUE                           EXAMPLE
---- ------------------------------- --------------------------------------
1    ( Year multiples of 100 ) + 100 120
2    ( Year modulo 100 ) + 100       112 ((120-100)*100 + (112-100) = 2012)
3    Month                           11
4    Day                             26
5    Hours + 1                       17
6    Minutes + 1                     42
7    Seconds + 1                     10

如果你希望日期具有特定格式,則需要將其轉換為具有格式(即字串)的內容。SQL 客戶端可能隱式執行此操作,或者你可以使用 TO_CHAR( date, format_model, nls_params ) 將值顯式轉換為字串