MSSQL在两个日期之间获得一个表(月/年)

Kas*_*ghe 1 sql-server

我必须使用MSSQL服务器在两个日期之间获得一个月份+年份的表.可以说给定的日期是2012年2月1日至2012年4月5日.那个表应该是这样的

 Feb 2012
 Mar 2012
 April 2012
Run Code Online (Sandbox Code Playgroud)

任何有关实现这一目标的建议都非常感谢

Dev*_*art 11

试试这个 -

查询:

DECLARE 
      @start DATE = '20120201'
    , @end DATE = '20120405'

;WITH cte AS 
(
    SELECT dt = DATEADD(DAY, -(DAY(@start) - 1), @start)

    UNION ALL

    SELECT DATEADD(MONTH, 1, dt)
    FROM cte
    WHERE dt < DATEADD(DAY, -(DAY(@end) - 1), @end)
)
SELECT CONVERT(CHAR(4), dt, 100) + CONVERT(CHAR(4), dt, 120) 
FROM cte
Run Code Online (Sandbox Code Playgroud)

输出:

--------
Feb 2012
Mar 2012
Apr 2012
Run Code Online (Sandbox Code Playgroud)