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 值的格式。不支援包含時區 (TZtzOF) 的格式做為輸出。請參閱 日期時間格式字串 以取得有效的時間戳記格式。

is_strict

選用的 Boolean 值,指定如果輸入時間戳值超出範圍是否回傳錯誤。當 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