在简单的select语句中获取最近6个月monthname.month数字和年份

Ram*_*han 3 sql-server date

如何在sqlserver中的简单select语句中获取最近6个月的月份名称,月份号和年份. 月份的数量是6,并且是固定的

12  Dec 2015
11  Nov 2015
10  Oct 2015
9   Sep 2015
8   Aug 2015
7   Jul 2015
6   Jun 2015 
Run Code Online (Sandbox Code Playgroud)

这应该处理年终边界

比如说,如果当前月份是2016年2月,结果应该给出2015个月.

2   Feb 2016
1   Jan 2016
12  Dec 2015
11  Nov 2015
10  Oct 2015
9   Sep 2015
8   Aug 2015
Run Code Online (Sandbox Code Playgroud)

Gio*_*uri 8

您可以使用以下内容执行此操作:

SELECT  MONTH(DATEADD(mm, -m, GETDATE())) AS m,
        LEFT(DATENAME(mm,  DATEADD(mm, -m, GETDATE())), 3) AS n,
        YEAR(DATEADD(mm, -m, GETDATE())) AS y
FROM    (VALUES (0),(1),(2),(3),(4),(5),(6)) t(m) 
Run Code Online (Sandbox Code Playgroud)

输出:

m   n   y
12  Dec 2015
11  Nov 2015
10  Oct 2015
9   Sep 2015
8   Aug 2015
7   Jul 2015
6   Jun 2015
Run Code Online (Sandbox Code Playgroud)