【问题标题】:SQL Generate per day records between datesSQL 在日期之间生成每天的记录
【发布时间】:2022-01-08 16:23:35
【问题描述】:

我有一个表格,其中每条记录都有开始和结束日期。我需要在开始日期和结束日期字段(包括开始日期和结束日期)之间返回每天的记录。使用 MS SQL Server。

例子:

当前数据

所需数据:

寻找建议。 谢谢。

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    你可以使用递归 cte:

    with cte as (
         select id, startdate, enddate, startdate as date
         from table t
         union all
         select id, startdate, enddate, dateadd(day, 1, date)
         from cte c
         where date < enddate
    )
    select *
    from cte c
    option (maxrecursion 0);
    

    【讨论】:

    • 这很好,谢谢,非常感谢。
    猜你喜欢
    • 2023-01-12
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多