日期格式

在 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 ) 将值显式转换为字符串