输入值注意事项
TO_DATE
需要
CHAR
或
VARCHAR
表达式。对于其他输入类型,请先使用
TO_CHAR
来执行显式强制转换为
CHAR
或
VARCHAR
,才能使用此函数。
要在输出中使用双引号字符,请在它前面加上双反斜杠。这样做很有必要,因为反斜杠在字符串常数中已经具有特殊含义。例如:
'\\\"YYYY Month\\\"'
TO_TIMESTAMP
如果不使用 FX 选项,则、
TO_TIMESTAMP_TZ
和
TO_DATE
会跳过输入字符串中的多个空格。必须将 FX 指定为模板中的第一项。例如:
TO_TIMESTAMP('2000 JUN', 'YYYY MON')
是正确的。
TO_TIMESTAMP('2000 JUN', 'FXYYYY MON')
返回错误,因为
TO_TIMESTAMP
仅接受一个空格。
如果使用多于四个数字的年份,则从字符串到
TIMESTAMP
或
DATE
的
YYYY
转换存在限制。在
YYYY
之后必须使用非数字字符或模板,否则会始终将年份解释成四个数字。例如,给定以下实参,
TO_DATE
将五位数年份 20000 解释为四位数年份:
=> SELECT TO_DATE('200001131','YYYYMMDD');
TO_DATE
------------
2000-01-13
(1 row)
应在年份后使用非数字分隔符。例如:
=> SELECT TO_DATE('20000-1131', 'YYYY-MMDD');
TO_DATE
-------------
20000-12-01
(1 row)
在从字符串到 TIMESTAMP
或 DATE
的转换中,如果存在 YYY、YYYY 或 Y,YYY 字段,则会忽略 CC 字段。如果将 CC 与 YY 或 Y 一起使用,则将按 (CC–1)*100+YY 计算年份。
=> SELECT TO_DATE('13 Feb 2000', 'DD Mon YYYY');
to_date
------------
2000-02-13
(1 row)
日期/时间函数