我在sql server数据库环境中有下表。
起始日期mm/dd/yyy的格式。
sql - 根据每个月的日期时间列分隔行-LMLPHP
我需要结果如下表所示。
根据“开始日期”列,记录应在“开始日期”和“结束日期”之间的期间分隔到每个月
sql - 根据每个月的日期时间列分隔行-LMLPHP

最佳答案

可以使用递归CTE:

with cte as (
      select id, startdate as dte, enddate
      from t
      union all
      select id,
             dateadd(day, 1, eomonth(dte)),
             enddate
      from t
      where eomonth(dte) < enddate
     )
select id, dte,
       lead(dte, 1, enddate) over (partition by id order by dte)
from cte;

关于sql - 根据每个月的日期时间列分隔行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57164163/

10-11 02:03