我必须使用MSSQL服务器在两个日期之间获得一个月份+年份的表。 可以说给定的日期是2012年2月1日至2012年4月5日。然后表格看起来应该是这样的
Feb 2012
Mar 2012
April 2012
对于实现这一目标的任何建议都非常感谢?
答案 0 :(得分: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