小编典典

选择未来5年每月使用SQL的同一天?

sql

如何使用SQL在接下来的5年中每个月选择同一天?

例如:

  1. 2013年1月5日
  2. 2013年2月5日
  3. 2013年3月5日

我试过了:

select dateadd(day,-day(dateadd(month,1,current_timestamp)) , dateadd(month,1,current_timestamp) )

阅读 162

收藏
2021-04-28

共1个答案

小编典典

怎么样

DECLARE @StartDate DATETIME = '05 Jan 2013',
        @YearsAdded INT = 5

;WITH Dates AS (
        SELECT  @StartDate [Date]
        UNION ALL
        SELECT  DATEADD(MONTH,1,[Date])
        FROM    Dates
        WHERE   DATEADD(MONTH,1,[Date]) <= DATEADD(YEAR,@YearsAdded,@StartDate)
)
SELECT  *
FROM    Dates
OPTION (MAXRECURSION 0)

sqlfiddle

2021-04-28