1

我必须使用 MSSQL 服务器在两个日期之间获取一个包含月份 + 年份的表。假设给定的日期是 01/02/2012 到 05/04/2012。那么表格应该是这样的

 Feb 2012
 Mar 2012
 April 2012

任何实现这一目标的建议都受到高度赞赏?

4

1 回答 1

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

输出:

--------
Feb 2012
Mar 2012
Apr 2012
于 2013-05-15T07:25:50.973 回答