加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 最简单的方式来填充包含2个日期参数之间的日期的临时表

发布时间:2020-12-12 16:16:18 所属栏目:MsSql教程 来源:网络整理
导读:使用包含日期和日期参数之间的日期来填充临时表的最简单方法是什么?我只需要一个月的第一天的日期. 所以例如@StartDate =’2011-01-01’和@EndDate =’2011-08-01′ 然后我希望这在表中返回 2011-01-012011-02-012011-03-012011-04-012011-05-012011-06-0120
使用包含日期和日期参数之间的日期来填充临时表的最简单方法是什么?我只需要一个月的第一天的日期.

所以例如@StartDate =’2011-01-01’和@EndDate =’2011-08-01′

然后我希望这在表中返回

2011-01-01
2011-02-01
2011-03-01
2011-04-01
2011-05-01
2011-06-01
2011-07-01
2011-08-01

解决方法

即使@StartDate不是本月的第一个,这也是有效的.我假设如果不是本月初,你想从下个月的第一个开始.否则删除1:
;WITH cte AS (
SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate 
            ELSE DATEADD(Month,DATEDIFF(Month,@StartDate)+1,0) END AS myDate
UNION ALL
SELECT DATEADD(Month,1,myDate)
FROM cte
WHERE DATEADD(Month,myDate) <=  @EndDate
)
SELECT myDate
FROM cte
OPTION (MAXRECURSION 0)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读