Cloudflare Pipelines のスカラー関数実装は Apache DataFusion ↗(Arroyo ↗ 経由)を基にしており、このドキュメントは DataFusion の関数リファレンスから派生しています。
時間間隔を計算し、指定したタイムスタンプに最も近い間隔の開始を返します。
行を時間ベースの「ビン」または「ウィンドウ」にグループ化し、各ウィンドウに集約またはセレクター関数を適用することで、時系列データをダウンサンプルするために 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(precision, expression)引数
-
precision: 切り詰める時刻精度。 次の精度に対応しています。
- year / YEAR
- quarter / QUARTER
- month / MONTH
- week / WEEK
- day / DAY
- hour / HOUR
- minute / MINUTE
- second / SECOND
-
expression: 対象の時刻式。 定数、列、関数を使えます。
エイリアス
- datetrunc
date_trunc のエイリアスです。
日付の指定した部分を整数として返します。
date_part(part, expression)引数
-
part: 返す日付の部分。 次の日付部分に対応しています。
- year
- quarter (日付が属する年の四半期に基づき、閉区間 [1, 4] の値を返します)
- month
- week (年内の週)
- day (月内の日)
- hour
- minute
- second
- millisecond
- microsecond
- nanosecond
- dow (曜日)
- doy (年内通算日)
- epoch (Unix エポックからの秒数)
-
expression: 対象の時刻式。 定数、列、関数を使えます。
エイリアス
- datepart
date_part のエイリアスです。
時刻値から部分フィールドを整数として返します。
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(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 |
+-----------------------------------------------+日付、時刻、タイムスタンプ、または期間の文字列表現を、 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
値をタイムスタンプ(YYYY-MM-DDT00:00:00Z)に変換します。
入力として文字列、整数、符号なし整数、倍精度浮動小数点数に対応しています。
[Chrono formats] を指定しない場合、文字列は RFC3339(例: '2023-07-20T05:44:00')として解析します。
整数、符号なし整数、倍精度浮動小数点数は、UNIX エポック(1970-01-01T00:00:00Z)からの秒として解釈します。
対応するタイムスタンプを返します。
注意: to_timestamp は Timestamp(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 |
+--------------------------------------------------------------------------------------------------------+値をタイムスタンプ(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 |
+---------------------------------------------------------------------------------------------------------------+値をタイムスタンプ(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 |
+---------------------------------------------------------------------------------------------------------------+値をタイムスタンプ(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 |
+---------------------------------------------------------------------------------------------------------------+値をタイムスタンプ(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 |
+----------------------------------------------------------------------------------------------------------------+整数を RFC3339 タイムスタンプ形式(YYYY-MM-DDT00:00:00.000000000Z)に変換します。
整数と符号なし整数は、UNIX エポック(1970-01-01T00:00:00Z)からのナノ秒として解釈し、
対応するタイムスタンプを返します。
from_unixtime(expression)引数
- expression: 対象の式。 定数、列、関数、および算術演算子の任意の組み合わせを使えます。
パイプライン開始時の UTC タイムスタンプを返します。
now() の戻り値はクエリのコンパイル時に決まり、パイプライン実行全体で
定数になります。