TO_DATE

转换字符串值为 DATE 类型。

行为类型

稳定

语法

TO_DATE ( expression , pattern )

参数

表达式
指定要转换的字符串值,CHARVARCHAR
模式
指定输出模式字符串的 CHARVARCHAR。请参阅:

输入值注意事项

TO_DATE 需要 CHARVARCHAR 表达式。对于其他输入类型,请先使用 TO_CHAR 来执行显式强制转换为 CHARVARCHAR,才能使用此函数。

注意

  • 要在输出中使用双引号字符,请在它前面加上双反斜杠。这样做很有必要,因为反斜杠在字符串常数中已经具有特殊含义。例如: '\\\"YYYY Month\\\"'
  • TO_TIMESTAMP如果不使用 FX 选项,则、TO_TIMESTAMP_TZTO_DATE 会跳过输入字符串中的多个空格。必须将 FX 指定为模板中的第一项。例如:

    • TO_TIMESTAMP('2000 JUN', 'YYYY MON') 是正确的。

    • TO_TIMESTAMP('2000 JUN', 'FXYYYY MON') 返回错误,因为 TO_TIMESTAMP 仅接受一个空格。

  • 如果使用多于四个数字的年份,则从字符串到 TIMESTAMPDATEYYYY 转换存在限制。在 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)
    
  • 在从字符串到 TIMESTAMPDATE 的转换中,如果存在 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)

另请参阅

日期/时间函数