TO_TIMESTAMP 函数 - Amazon Redshift

TO_TIMESTAMP 函数

TO_TIMESTAMP 将 TIMESTAMP 字符串转换为 TIMESTAMPTZ。有关适用于 Amazon Redshift 的其他日期和时间函数的列表,请参阅日期和时间函数

语法

to_timestamp(timestamp, format)
to_timestamp (timestamp, format, is_strict)

参数

timestamp

format 指定的格式表示时间戳值的字符串。如果将此参数留为空,则时间戳值默认为 0001-01-01 00:00:00

format

一个字符串文本,用于定义 timestamp 值的格式。包含时区的格式(TZtz,或者 OF)不支持作为输入。有关有效的时间戳格式,请参阅日期时间格式字符串

is_strict

一个可选的布尔值,它指定在输入时间戳值超出范围时是否返回错误。当 is_strict 被设置为 TRUE 时,如果存在超出范围的值,则返回错误。当 is_strict 被设置为 FALSE(默认值)时,则接受溢出值。

返回类型

TIMESTAMPTZ

示例

以下示例演示使用 TO_TIMESTAMP 函数将 TIMESTAMP 字符串转换为 TIMESTAMPTZ。

select sysdate, to_timestamp(sysdate, 'YYYY-MM-DD HH24:MI:SS') as second; timestamp | second -------------------------- ---------------------- 2021-04-05 19:27:53.281812 | 2021-04-05 19:27:53+00

可以传递日期的 TO_TIMESTAMP 部分。其余日期部分设置为默认值。时间包括在输出中:

SELECT TO_TIMESTAMP('2017','YYYY'); to_timestamp -------------------------- 2017-01-01 00:00:00+00

以下 SQL 语句将字符串“2011-12-18 24:38:15”转换为 TIMESTAMPTZ。得到的结果是第二天的 TIMESTAMPTZ,因为小时数超过 24 小时:

SELECT TO_TIMESTAMP('2011-12-18 24:38:15', 'YYYY-MM-DD HH24:MI:SS'); to_timestamp ---------------------- 2011-12-19 00:38:15+00

以下 SQL 语句将字符串“2011-12-18 24:38:15”转换为 TIMESTAMPTZ。结果产生错误,因为时间戳中的时间值超过 24 小时:

SELECT TO_TIMESTAMP('2011-12-18 24:38:15', 'YYYY-MM-DD HH24:MI:SS', TRUE); ERROR: date/time field time value out of range: 24:38:15.0