タイムスタンプの関数

タイムスタンプ関数は、指定されたタイムスタンプに対して様々な操作を実行します。

タイムスタンプに期間を追加し、2つのタイムスタンプ間の差異を見つけ、指定した単位にタイムスタンプを丸めることができます。タイムスタンプは、カスタマイズされたパターンで文字列との間でキャストできます。一部の関数は、タイムスタンプの日付部分の抽出をサポートします。これらの関数を使用して、現在の時間を表示することもできます。

これらのタイムスタンプ関数のいくつかは、単位または書式パターンを指定する2番目の引数を取ります。

入力タイムスタンプには、TIMESTAMP値/式を指定できます。必要に応じて、タイムスタンプ関数は指定されたタイムスタンプに対して暗黙的なCASTを実行します。

タイムスタンプ関数は、SELECT/WHERE句から呼び出すことができます。また、構文で関数コールが許可されている他のSQL句から呼び出すこともできます。たとえば、集計関数の引数として関数を指定できます。

次のタイムスタンプ関数がサポートされています。

表12-1 タイムスタンプ関数

関数 説明
timestamp_add タイムスタンプ値に期間を追加します。
timestamp_diff 2つのタイムスタンプ値の間のミリ秒数を返します。
get_duration 指定されたミリ秒数を期間文字列に変換します。
timestamp_ceil タイムスタンプ値を指定した単位に切り上げます。
timestamp_floor/timestamp_trunc タイムスタンプ値を、指定した単位に切り下げます。
timestamp_round タイムスタンプ値を指定した単位に丸めます。
timestamp_bucket タイムスタンプ値を、指定した起点値から開始して、指定した間隔の先頭に丸めます。
format_timestamp 指定されたパターンおよびタイムゾーンに従って、タイムスタンプを文字列に変換します。
parse_to_timestamp 指定されたパターンの文字列をタイムスタンプ値に変換します。
to_last_day_of_month 指定されたタイムスタンプから月の最終日を返します。
タイムスタンプ抽出関数

指定されたタイムスタンプの対応する日付部分を抽出します。次の関数がサポートされています。

  • year
  • month
  • day
  • hour
  • minute
  • second
  • millisecond
  • microsecond
  • nanosecond

年内の週番号を返します。次の関数がサポートされています。

  • week
  • isoweek

指定されたタイムスタンプから対応する索引を返します。次の関数がサポートされています。

  • quarter
  • day_of_week
  • day_of_month
  • day_of_year
current_time_millis 現在時刻をミリ秒数として返します。
current_time 現在の時刻をタイムスタンプ値として返します。

次の各項の例は、航空会社の手荷物追跡アプリケーションおよびTVストリーミング・アプリケーションに基づいています。例に従って使用するには、例で使用する表の項の説明に従って表を作成しデータをロードします。