コンテンツにスキップ

TO_TIMESTAMP は、式を日時(timestamp/datetime)に変換します。

この関数は1つまたは2つの引数を受け取ります。引数が1つの場合は、文字列から日付を抽出します。引数が整数の場合は、Unixエポック(1970年1月1日の午前0時)より前(負の数の場合)または後(正の数の場合)の秒数、ミリ秒数、またはマイクロ秒数として解釈します。

  • 整数が31,536,000,000未満の場合は、秒として扱われます。
  • 整数が31,536,000,000以上31,536,000,000,000未満の場合は、ミリ秒として扱われます。
  • 整数が31,536,000,000,000以上の場合は、マイクロ秒として扱われます。

引数が2つの場合は、2番目の文字列で指定した書式に基づいて、1番目の文字列をタイムスタンプに変換します。PlaidCloud Lakehouse で日付と時刻の書式をカスタマイズするには、指定子を使用します。指定子を使うと、日付と時刻の値を目的の書式で定義できます。サポートされている指定子の一覧については、「日付と時刻の書式設定」を参照してください。

  • 出力されるタイムスタンプには、PlaidCloud Lakehouse のタイムゾーンが反映されます。
  • 変換する文字列にはタイムゾーン情報を含める必要があります。含まれていない場合は NULL が返されます。

日付の書式は strftime の仕様で指定します。クイックリファレンスを参照してください。

関連項目: TO_DATE

func.to_timestamp(<expr>)
func.to_timestamp('2022-01-02T03:25:02.868894-07:00')
┌────────────────────────────────────────────────────────────────┐
│ func.to_timestamp('2022-01-02T03:25:02.868894-07:00') │
│ Timestamp │
├────────────────────────────────────────────────────────────────┤
│ 2022-01-02 10:25:02.868894 │
└────────────────────────────────────────────────────────────────┘
-- Convert a string or integer to a timestamp
TO_TIMESTAMP(<expr>)
-- Convert a string to a timestamp using the given pattern
TO_TIMESTAMP(<expr, expr>)

「YYYY-MM-DD hh:mm:ss.ffffff」形式のタイムスタンプを返します。指定した文字列がこの形式に一致していても時刻部分がない場合は、自動的にこの形式に補完されます。補完される値は0です。

SELECT TO_TIMESTAMP('2022-01-02T03:25:02.868894-07:00');
---
2022-01-02 10:25:02.868894
SELECT TO_TIMESTAMP('2022-01-02 02:00:11');
---
2022-01-02 02:00:11.000000
SELECT TO_TIMESTAMP('2022-01-02T02:00:22');
---
2022-01-02 02:00:22.000000
SELECT TO_TIMESTAMP('2022-01-02T01:12:00-07:00');
---
2022-01-02 08:12:00.000000
SELECT TO_TIMESTAMP('2022-01-02T01');
---
2022-01-02 01:00:00.000000
SELECT TO_TIMESTAMP(1);
---
1970-01-01 00:00:01.000000
SELECT TO_TIMESTAMP(-1);
---
1969-12-31 23:59:59.000000
SET GLOBAL timezone ='Japan';
SELECT TO_TIMESTAMP('2022 年 2 月 4 日、8 時 58 分 59 秒、タイムゾーン:+0900', '%Y年%m月%d日、%H時%M分%S秒、タイムゾーン:%z');
---
2022-02-04 08:58:59.000000
SET GLOBAL timezone ='America/Toronto';
SELECT TO_TIMESTAMP('2022 年 2 月 4 日、8 時 58 分 59 秒、タイムゾーン:+0900', '%Y年%m月%d日、%H時%M分%S秒、タイムゾーン:%z');
---
2022-02-03 18:58:59.000000