Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

日時関数

最終更新 Markdown で表示Agent セットアップ

Cloudflare Pipelines のスカラー関数実装は Apache DataFusionArroyo 経由)を基にしており、このドキュメントは DataFusion の関数リファレンスから派生しています。

date_bin

時間間隔を計算し、指定したタイムスタンプに最も近い間隔の開始を返します。 行を時間ベースの「ビン」または「ウィンドウ」にグループ化し、各ウィンドウに集約またはセレクター関数を適用することで、時系列データをダウンサンプルするために date_bin を使います。

たとえば、データを 15 分間隔の「ビン」または「ウィンドウ」に入れると、入力 タイムスタンプ 2023-01-01T18:18:18Z は、それが属する 15 分ビンの開始時刻 2023-01-01T18:15:00Z に更新されます。

date_bin(interval, expression, origin-timestamp)

引数

  • interval: ビンの間隔。
  • expression: 対象の時刻式。 定数、列、関数を使えます。
  • origin-timestamp: 任意。ビン境界の決定に使う開始点。指定しない場合、 デフォルトは 1970-01-01T00:00:00Z(UTC の UNIX エポック)です。

次の間隔に対応しています。

  • nanoseconds
  • microseconds
  • milliseconds
  • seconds
  • minutes
  • hours
  • days
  • weeks
  • months
  • years
  • century

date_trunc

タイムスタンプ値を指定した精度に切り詰めます。

date_trunc(precision, expression)

引数

  • precision: 切り詰める時刻精度。 次の精度に対応しています。

    • year / YEAR
    • quarter / QUARTER
    • month / MONTH
    • week / WEEK
    • day / DAY
    • hour / HOUR
    • minute / MINUTE
    • second / SECOND
  • expression: 対象の時刻式。 定数、列、関数を使えます。

エイリアス

  • datetrunc

datetrunc

date_trunc のエイリアスです。

date_part

日付の指定した部分を整数として返します。

date_part(part, expression)

引数

  • part: 返す日付の部分。 次の日付部分に対応しています。

    • year
    • quarter (日付が属する年の四半期に基づき、閉区間 [1, 4] の値を返します)
    • month
    • week (年内の週)
    • day (月内の日)
    • hour
    • minute
    • second
    • millisecond
    • microsecond
    • nanosecond
    • dow (曜日)
    • doy (年内通算日)
    • epoch (Unix エポックからの秒数)
  • expression: 対象の時刻式。 定数、列、関数を使えます。

エイリアス

  • datepart

datepart

date_part のエイリアスです。

extract

時刻値から部分フィールドを整数として返します。

extract(field FROM source)

date_part('field', source) の呼び出しと同等です。たとえば、次は同等です。

extract(day FROM '2024-04-13'::date)
date_part('day', '2024-04-13'::date)

date_part を参照してください。

make_date

年 / 月 / 日の構成要素から日付を作ります。

make_date(year, month, day)

引数

  • year: 日付を作るときに使う年。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • month: 日付を作るときに使う月。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • day: 日付を作るときに使う日。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。

> select make_date(2023, 1, 31);
+-------------------------------------------+
| make_date(Int64(2023),Int64(1),Int64(31)) |
+-------------------------------------------+
| 2023-01-31                                |
+-------------------------------------------+
> select make_date('2023', '01', '31');
+-----------------------------------------------+
| make_date(Utf8("2023"),Utf8("01"),Utf8("31")) |
+-----------------------------------------------+
| 2023-01-31                                    |
+-----------------------------------------------+

to_char

日付、時刻、タイムスタンプ、または期間の文字列表現を、 Chrono format に基づいて返します。PostgreSQL の同等関数とは異なり、 数値の書式指定には対応していません。

to_char(expression, format)

引数

  • expression: 対象の式。 日付、時刻、タイムスタンプ、または期間になる定数、列、関数を使えます。
  • format: 式の変換に使う Chrono format 文字列。

> > select to_char('2023-03-01'::date, '%d-%m-%Y');
+----------------------------------------------+
| to_char(Utf8("2023-03-01"),Utf8("%d-%m-%Y")) |
+----------------------------------------------+
| 01-03-2023                                   |
+----------------------------------------------+

エイリアス

  • date_format

to_timestamp

値をタイムスタンプ(YYYY-MM-DDT00:00:00Z)に変換します。 入力として文字列、整数、符号なし整数、倍精度浮動小数点数に対応しています。 [Chrono formats] を指定しない場合、文字列は RFC3339(例: '2023-07-20T05:44:00')として解析します。 整数、符号なし整数、倍精度浮動小数点数は、UNIX エポック(1970-01-01T00:00:00Z)からの秒として解釈します。 対応するタイムスタンプを返します。

注意: to_timestampTimestamp(Nanosecond) を返します。整数入力の対応範囲は -9223372037 から 9223372036 です。 文字列入力の対応範囲は 1677-09-21T00:12:44.0 から 2262-04-11T23:47:16.0 です。対応範囲外の入力には to_timestamp_seconds を使ってください。

to_timestamp(expression[, ..., format_n])

引数

  • expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • format_n: 式の解析に使う任意の Chrono format 文字列。書式は出現順に試行し、 最初に成功したものを返します。どの書式でも式を解析できなかった場合は エラーを返します。

> select to_timestamp('2023-01-31T09:26:56.123456789-05:00');
+-----------------------------------------------------------+
| to_timestamp(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+-----------------------------------------------------------+
| 2023-01-31T14:26:56.123456789                             |
+-----------------------------------------------------------+
> select to_timestamp('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+--------------------------------------------------------------------------------------------------------+
| to_timestamp(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+--------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123456789                                                                          |
+--------------------------------------------------------------------------------------------------------+

to_timestamp_millis

値をタイムスタンプ(YYYY-MM-DDT00:00:00.000Z)に変換します。 入力として文字列、整数、符号なし整数に対応しています。 Chrono format を指定しない場合、文字列は RFC3339(例: '2023-07-20T05:44:00')として解析します。 整数と符号なし整数は、UNIX エポック(1970-01-01T00:00:00Z)からのミリ秒として解釈します。 対応するタイムスタンプを返します。

to_timestamp_millis(expression[, ..., format_n])

引数

  • expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • format_n: 式の解析に使う任意の Chrono format 文字列。書式は出現順に試行し、 最初に成功したものを返します。どの書式でも式を解析できなかった場合は エラーを返します。

> select to_timestamp_millis('2023-01-31T09:26:56.123456789-05:00');
+------------------------------------------------------------------+
| to_timestamp_millis(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+------------------------------------------------------------------+
| 2023-01-31T14:26:56.123                                          |
+------------------------------------------------------------------+
> select to_timestamp_millis('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+---------------------------------------------------------------------------------------------------------------+
| to_timestamp_millis(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+---------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123                                                                                       |
+---------------------------------------------------------------------------------------------------------------+

to_timestamp_micros

値をタイムスタンプ(YYYY-MM-DDT00:00:00.000000Z)に変換します。 入力として文字列、整数、符号なし整数に対応しています。 Chrono format を指定しない場合、文字列は RFC3339(例: '2023-07-20T05:44:00')として解析します。 整数と符号なし整数は、UNIX エポック(1970-01-01T00:00:00Z)からのマイクロ秒として解釈します。 対応するタイムスタンプを返します。

to_timestamp_micros(expression[, ..., format_n])

引数

  • expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • format_n: 式の解析に使う任意の Chrono format 文字列。書式は出現順に試行し、 最初に成功したものを返します。どの書式でも式を解析できなかった場合は エラーを返します。

> select to_timestamp_micros('2023-01-31T09:26:56.123456789-05:00');
+------------------------------------------------------------------+
| to_timestamp_micros(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+------------------------------------------------------------------+
| 2023-01-31T14:26:56.123456                                       |
+------------------------------------------------------------------+
> select to_timestamp_micros('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+---------------------------------------------------------------------------------------------------------------+
| to_timestamp_micros(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+---------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123456                                                                                    |
+---------------------------------------------------------------------------------------------------------------+

to_timestamp_nanos

値をタイムスタンプ(YYYY-MM-DDT00:00:00.000000000Z)に変換します。 入力として文字列、整数、符号なし整数に対応しています。 [Chrono formats] を指定しない場合、文字列は RFC3339(例: '2023-07-20T05:44:00')として解析します。 整数と符号なし整数は、UNIX エポック(1970-01-01T00:00:00Z)からのナノ秒として解釈します。 対応するタイムスタンプを返します。

to_timestamp_nanos(expression[, ..., format_n])

引数

  • expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • format_n: 式の解析に使う任意の Chrono format 文字列。書式は出現順に試行し、 最初に成功したものを返します。どの書式でも式を解析できなかった場合は エラーを返します。

> select to_timestamp_nanos('2023-01-31T09:26:56.123456789-05:00');
+-----------------------------------------------------------------+
| to_timestamp_nanos(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+-----------------------------------------------------------------+
| 2023-01-31T14:26:56.123456789                                   |
+-----------------------------------------------------------------+
> select to_timestamp_nanos('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+--------------------------------------------------------------------------------------------------------------+
| to_timestamp_nanos(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+--------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123456789                                                                                |
+---------------------------------------------------------------------------------------------------------------+

to_timestamp_seconds

値をタイムスタンプ(YYYY-MM-DDT00:00:00.000Z)に変換します。 入力として文字列、整数、符号なし整数に対応しています。 Chrono format を指定しない場合、文字列は RFC3339(例: '2023-07-20T05:44:00')として解析します。 整数と符号なし整数は、UNIX エポック(1970-01-01T00:00:00Z)からの秒として解釈します。 対応するタイムスタンプを返します。

to_timestamp_seconds(expression[, ..., format_n])

引数

  • expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
  • format_n: 式の解析に使う任意の Chrono format 文字列。書式は出現順に試行し、 最初に成功したものを返します。どの書式でも式を解析できなかった場合は エラーを返します。

> select to_timestamp_seconds('2023-01-31T09:26:56.123456789-05:00');
+-------------------------------------------------------------------+
| to_timestamp_seconds(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+-------------------------------------------------------------------+
| 2023-01-31T14:26:56                                               |
+-------------------------------------------------------------------+
> select to_timestamp_seconds('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+----------------------------------------------------------------------------------------------------------------+
| to_timestamp_seconds(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+----------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00                                                                                            |
+----------------------------------------------------------------------------------------------------------------+

from_unixtime

整数を RFC3339 タイムスタンプ形式(YYYY-MM-DDT00:00:00.000000000Z)に変換します。 整数と符号なし整数は、UNIX エポック(1970-01-01T00:00:00Z)からのナノ秒として解釈し、 対応するタイムスタンプを返します。

from_unixtime(expression)

引数

  • expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。

now

パイプライン開始時の UTC タイムスタンプを返します。

now() の戻り値はクエリのコンパイル時に決まり、パイプライン実行全体で 定数になります。

役に立ちましたか?