TO_DATE
转换字符串值为 DATE 类型。
行为类型
稳定语法
TO_DATE ( expression , pattern )
参数
- 表达式
- 指定要转换的字符串值,
CHAR
或VARCHAR
。 - 模式
- 指定输出模式字符串的
CHAR
或VARCHAR
。请参阅:
输入值注意事项
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)