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