在SQL中即时生成具有分钟步长的时间间隔之间的时间序列

问题描述

问题在这篇文章的结尾。

我发现此链接可以生成日期 Generating a series of dates 并对其进行了修改,使其以一定的间隔生成时间:

SET @start_time = "08:02";
SET @stop_time  = "17:02";
SELECT
     TIME_FORMAT(time(CONCAT(m3,m2,':',m1,m0)),"%H:%i") as Time
FROM
    (SELECT 0 m0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) AS m0,(SELECT 0 m1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) AS m1,(SELECT 0 m2 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) AS m2,(SELECT 0 m3 UNION SELECT 1 UNION SELECT 2) AS m3
where time(CONCAT(m3,m0)) is not null 
and time(CONCAT(m3,m0)) >= @start_time
and time(CONCAT(m3,m0)) <= @stop_time
order by Time asc

这将生成此表:

Time
10:02
10:03
10:04
10:05
10:06
...
16:59
17:00
17:01

问题?

可以用更有效的方式写吗?我想指定一个带间隔的间隔,以便可以将其快速更新为每隔X分钟的间隔。我不想将结果存储在DB中,我只想即时生成它。因为我将其与其他表一起加入。

我在mysql查询中经常使用它来安排时间序列以方便在Excel中进行绘制。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)