跳到主要内容

ARRAY_RANGE

描述

  1. 生成int数组
  2. 生成日期时间数组

别名

  • SEQUENCE

语法

ARRAY_RANGE(<end>)
ARRAY_RANGE(<start>, <end>)
ARRAY_RANGE(<start>, <end>, <step>)
ARRAY_RANGE(<start_datetime>, <end_datetime>)
ARRAY_RANGE(<start_datetime>, <end_datetime>, INTERVAL <interval_step> <unit>)

参数

参数说明
<start>起始值,为正整数,默认为 0
<end>结束值,为正整数
<step>步长,为正整数,默认为 1
<start_datetime>起始日期,为datetimev2类型
<end_datetime>结束日期,为datetimev2类型
<interval_step>间隔值,默认为 1
<unit>间隔单位,支持年/月/周/日/小时/分钟/秒,默认为日

返回值

  1. 返回一个数组,从start 到 end - 1, 步长为 step。如果第三个参数 step 为负数或者零,函数结果将为NULL
  2. 返回 start_datetime 和最接近 end_datetime 之间的 datetimev2 数组(按 Interval_step UNIT 计算)。如果第三个参数 interval_step 为负数或者零,函数结果将为NULL

举例

SELECT ARRAY_RANGE(0,20,2),ARRAY_RANGE(cast('2019-05-15 12:00:00' as datetimev2(0)), cast('2022-05-17 12:00:00' as datetimev2(0)), interval 2 year);
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| array_range(0, 20, 2) | array_range_year_unit(cast('2019-05-15 12:00:00' as DATETIMEV2(0)), cast('2022-05-17 12:00:00' as DATETIMEV2(0)), 2) |
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] | ["2019-05-15 12:00:00", "2021-05-15 12:00:00"] |
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------+