You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于起止时间生成30分钟时间槽的SQL查询?

生成指定时间范围内30分钟间隔的时间槽SQL查询

MySQL 8.0+ 版本(递归CTE实现)

直接替换语句中的起始时间和结束时间即可生成对应时间槽:

WITH RECURSIVE time_slots AS (
    SELECT 
        STR_TO_DATE('2024-11-13 00:00:00', '%Y-%m-%d %H:%i:%s') AS starttime,
        DATE_ADD(STR_TO_DATE('2024-11-13 00:00:00', '%Y-%m-%d %H:%i:%s'), INTERVAL 30 MINUTE) AS endtime
    UNION ALL
    SELECT 
        endtime AS starttime,
        DATE_ADD(endtime, INTERVAL 30 MINUTE) AS endtime
    FROM time_slots
    WHERE endtime < STR_TO_DATE('2024-11-13 02:00:00', '%Y-%m-%d %H:%i:%s')
)
SELECT starttime, endtime FROM time_slots;

PostgreSQL 版本(递归CTE实现)

语法更简洁,直接用时间加减:

WITH RECURSIVE time_slots AS (
    SELECT 
        '2024-11-13 00:00:00'::TIMESTAMP AS starttime,
        '2024-11-13 00:00:00'::TIMESTAMP + INTERVAL '30 minutes' AS endtime
    UNION ALL
    SELECT 
        endtime AS starttime,
        endtime + INTERVAL '30 minutes' AS endtime
    FROM time_slots
    WHERE endtime < '2024-11-13 02:00:00'::TIMESTAMP
)
SELECT starttime, endtime FROM time_slots;

SQL Server 版本(递归CTE实现)

用DATEADD函数实现时间偏移:

WITH time_slots AS (
    SELECT 
        CAST('2024-11-13 00:00:00' AS DATETIME) AS starttime,
        DATEADD(MINUTE, 30, CAST('2024-11-13 00:00:00' AS DATETIME)) AS endtime
    UNION ALL
    SELECT 
        endtime AS starttime,
        DATEADD(MINUTE, 30, endtime) AS endtime
    FROM time_slots
    WHERE endtime < CAST('2024-11-13 02:00:00' AS DATETIME)
)
SELECT starttime, endtime FROM time_slots;

低版本MySQL(无递归CTE支持)

如果你的MySQL版本不支持递归,可以用数字生成表来实现,需要根据时间范围调整数字数量:

SELECT 
    DATE_ADD('2024-11-13 00:00:00', INTERVAL (n*30) MINUTE) AS starttime,
    DATE_ADD('2024-11-13 00:00:00', INTERVAL ((n+1)*30) MINUTE) AS endtime
FROM (
    SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
    -- 比如要覆盖24小时就继续加UNION ALL SELECT ...直到47
) AS numbers
WHERE DATE_ADD('2024-11-13 00:00:00', INTERVAL ((n+1)*30) MINUTE) <= '2024-11-13 02:00:00';

内容的提问来源于stack exchange,提问作者user1251973

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:33:11