ARRAY_RANGE
機能
数値または日時の等差数列配列を生成します。
- 数値型の場合、デフォルトのステップは1です
- 日時型の場合、デフォルトのステップは1日です
構文
ARRAY_RANGE(end)ARRAY_RANGE(start, end)ARRAY_RANGE(start, end, step)ARRAY_RANGE(start_dt, end_dt)ARRAY_RANGE(start_dt, end_dt, interval step unit)
パラメータ
start、end: 非負整数。endは上限値で、結果から除外されます。step: 正の整数である必要があります;ステップ長;デフォルトは1です。start_dt、end_dt: DATETIME。2引数形式では、デフォルトのステップは1 DAYです。interval step unit: 日時のステップ。unitはYEAR|QUARTER|MONTH|WEEK|DAY|HOUR|MINUTE|SECONDが可能;stepは正の整数である必要があります。
戻り値
ARRAY<T>を返します;不正な引数の場合はNULLを返します;空の範囲の場合は空配列[]を返します。- 要素型
Tは入力と一致します:整数はINTを生成し、日時はDATETIMEを生成します。
使用上の注意
- 数値シーケンス:
startから開始し、stepずつ増分し、endまで(endは除く)(左閉右開)。 - 日時シーケンス:
start_dtから開始し、指定されたunitでstepずつ増分し、end_dtまで(end_dtは除く);2引数形式はinterval 1 dayと同等です。 - 不正な引数は
NULLを返します:- 数値:
start < 0、end < 0、step <= 0。 - 日時:
start_dtまたはend_dtが無効、またはstep <= 0。
- 数値:
ARRAY_RANGEとSEQUENCEは同等です。
例
-
数値:
startのデフォルトは0、stepのデフォルトは1ARRAY_RANGE(5)->[0, 1, 2, 3, 4]ARRAY_RANGE(0, 5)->[0, 1, 2, 3, 4]
-
数値:
endは上限値で、結果に含まれません。ARRAY_RANGE(2, 6, 2)->[2, 4]ARRAY_RANGE(3, 3)->[]
-
数値:
endはstart以上である必要があります。そうでない場合は[]を返しますARRAY_RANGE(3, 2)->[]
-
数値:
start、endは非負整数である必要があり、stepは0より大きい必要があります。ARRAY_RANGE(-1, 3)->NULLARRAY_RANGE(1, 3, 0)->NULL
-
日時:
stepのデフォルトは1日です。ARRAY_RANGE('2022-05-15 12:00:00', '2022-05-17 12:00:00')->['2022-05-15 12:00:00', '2022-05-16 12:00:00']ARRAY_RANGE('2022-05-15 12:00:00', '2022-05-17 12:00:00', interval 1 day)->['2022-05-15 12:00:00', '2022-05-16 12:00:00']
-
日時:
unitはYEAR|QUARTER|MONTH|WEEK|DAY|HOUR|MINUTE|SECONDが可能ですARRAY_RANGE('2022-05-15 12:00:00', '2024-05-17 12:00:00', interval 1 year)->["2022-05-15 12:00:00", "2023-05-15 12:00:00"]ARRAY_RANGE('2022-05-15 12:00:00', '2023-05-17 12:00:00', interval 1 quarter);->["2022-05-15 12:00:00", "2022-08-15 12:00:00", "2022-11-15 12:00:00", "2023-02-15 12:00:00"]ARRAY_RANGE('2022-05-15 12:00:00', '2022-07-17 12:00:00', interval 1 month);->["2022-05-15 12:00:00", "2022-06-15 12:00:00"]ARRAY_RANGE('2022-05-15 12:00:00', '2022-05-17 12:00:00', interval 1 day)->['2022-05-15 12:00:00', '2022-05-16 12:00:00']ARRAY_RANGE('2022-05-15 12:00:00', '2022-05-15 14:00:00', interval 1 hour)->["2022-05-15 12:00:00", "2022-05-15 13:00:00"]ARRAY_RANGE('2022-05-15 12:00:00', '2022-05-15 12:02:00', interval 1 minute)->["2022-05-15 12:00:00", "2022-05-15 12:01:00"]ARRAY_RANGE('2022-05-15 12:00:00', '2022-05-15 12:00:02', interval 1 second)->["2022-05-15 12:00:00", "2022-05-15 12:00:01"]