根据开始和结束时间显示每分钟一行

5q4ezhmt  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(321)

我有一张如下所示的table:

task_id          start_date               end_date
  t1          2020-05-01 8:00:00    2020-05-01 9:45:00
  t2          2020-05-01 8:30:00    2020-05-01 9:00:00
  t3          2020-05-01 8:45:00    2020-05-01 9:30:00

我希望我的sql输出根据开始日期和结束日期为已经通过的任务的每分钟显示一行。例如,t1应该是

task_id     time
  t1        2020-05-01 8:00:00
  t1        2020-05-01 8:01:00
  t1        2020-05-01 8:02:00
  t1        2020-05-01 8:03:00
.....   .....
  t1        2020-05-01 9:45:00

类似地,t2看起来像

task_id      time
  t2    2020-05-01 8:30:00
  t2    2020-05-01 8:31:00
  t2    2020-05-01 8:32:00
  t2    2020-05-01 8:33:00
.....   .....
  t2    2020-05-01 9:00:00

我看着这个线程,并试图模仿它,但我不能产生预期的结果。
任何帮助都将不胜感激。
谢谢大家!

xmq68pz9

xmq68pz91#

递归cte如下所示:

with recursive cte as (
      select task_id, start_date, end_date
      from t
      union all
      select task_id, start_date + interval 1 minute, end_date
      from cte
      where start_date < end_date
     )
select task_id, start_date
from cte;

这是一把小提琴。

相关问题