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 値の形式を定義する文字列リテラル。タイムゾーン (
TZ
、tz
、または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