trino中的sequence生成日期序列函数在starrocks中如何实现?

经过查询确认,starrocks暂时不支持sequence日期序列函数,但是数值型的序列函数array_generate()。
select data_dt from unnest(sequence(cast(‘2024-09-01 as date’),cast(‘2024-09-07’ as date),INTERVAL ‘1’ day)) t (data_dt);

下面是替换的逻辑,欢迎交流指正。

  1. date_diff
-- 计算开始日期和结束日期间隔天数
select date_diff('DAY','2024-09-01','2024-09-07');

执行结果

6
  1. array_generate
-- array_generate生成序列
select array_generate(0,date_diff('DAY','2024-09-01','2024-09-07'),1);

执行结果

[0,1,2,3,4,5,6]
  1. inner join unnest
-- inner join unnest行转列
select * from (select '2024-09-01' as data_dt) a inner join unnest(array_generate(0,date_diff('DAY','2024-09-01','2024-09-07'),1)) u (step);

执行结果

2024-09-01 0
2024-09-01 1
2024-09-01 2
2024-09-01 3
2024-09-01 4
2024-09-01 5
2024-09-01 6
  1. 完整sql
-- 完整sql
select to_date(date_add(data_dt, INTERVAL step day)) as data_dt from (select '2024-09-01' as data_dt) a inner join unnest(array_generate(0,date_diff('DAY','2024-09-01','2024-09-07'),1)) u (step);

执行结果

2024-09-01
2024-09-02
2024-09-03
2024-09-04
2024-09-05
2024-09-06
2024-09-07
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

京河小蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值