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 に変換します。その結果、時間数が 24 時間を超えるため、翌日に該当する TIMESTAMPTZ になります。

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