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

求助:使用T-SQL从日期范围提取单个日期并生成7天数据集

生成指定日期范围内的连续7天数据集(分两组)

你当前的DATEADD(DAY, 7, StartDate)只会返回单个日期(起始日期往后推7天的那天),没法生成连续的7天序列。要实现需求,得结合递归CTE或者数字辅助表,用DATEADD逐天累加生成日期。

以下是针对SQL Server的实现示例(其他数据库语法略有调整,但核心逻辑一致):

1. 生成第一周(起始日期开始的7天)

-- 替换代码中的'2022-12-12'为你的StartDate
WITH WeekOneDates AS (
    SELECT CAST('2022-12-12' AS DATE) AS DateValue
    UNION ALL
    SELECT DATEADD(DAY, 1, DateValue)
    FROM WeekOneDates
    -- 控制生成7天:起始日期 + 6天(包含起始日共7天)
    WHERE DateValue < DATEADD(DAY, 6, '2022-12-12')
)
SELECT DateValue AS WeekOne
FROM WeekOneDates
OPTION (MAXRECURSION 0); -- 解除递归次数限制,避免报错

执行后会得到你期望的结果:

2022-12-12
2022-12-13
2022-12-14
2022-12-15
2022-12-16
2022-12-17
2022-12-18

2. 生成第二周(第一周结束后次日开始的7天)

对应示例中2022-12-19至2022-12-25的范围:

WITH WeekTwoDates AS (
    -- 从第一周最后一天的次日开始
    SELECT DATEADD(DAY, 7, '2022-12-12') AS DateValue
    UNION ALL
    SELECT DATEADD(DAY, 1, DateValue)
    FROM WeekTwoDates
    -- 控制生成7天:起始日期 +13天(包含起始日共7天)
    WHERE DateValue < DATEADD(DAY, 13, '2022-12-12')
)
SELECT DateValue AS WeekTwo
FROM WeekTwoDates
OPTION (MAXRECURSION 0);

3. 合并两个周的数据集(带周标识)

如果需要在一个结果集中区分两个周的日期:

WITH AllDates AS (
    SELECT 
        CAST('2022-12-12' AS DATE) AS DateValue,
        1 AS WeekNumber
    UNION ALL
    SELECT 
        DATEADD(DAY, 1, DateValue),
        -- 判断当前日期属于第一周还是第二周
        CASE WHEN DATEADD(DAY, 1, DateValue) <= DATEADD(DAY, 6, '2022-12-12') THEN 1 ELSE 2 END
    FROM AllDates
    -- 总共生成14天(两个7天周期)
    WHERE DateValue < DATEADD(DAY, 13, '2022-12-12')
)
SELECT 
    CASE WeekNumber WHEN 1 THEN DateValue END AS WeekOne,
    CASE WeekNumber WHEN 2 THEN DateValue END AS WeekTwo
FROM AllDates
OPTION (MAXRECURSION 0);

替代方案:用数字辅助表

如果你有一个包含0-6数字的辅助表(比如Numbers表),可以简化写法:

-- 生成第一周
SELECT DATEADD(DAY, n.Number, '2022-12-12') AS WeekOne
FROM Numbers n
WHERE n.Number BETWEEN 0 AND 6;

-- 生成第二周
SELECT DATEADD(DAY, n.Number +7, '2022-12-12') AS WeekTwo
FROM Numbers n
WHERE n.Number BETWEEN 0 AND 6;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:51:10