按月份名称和按年份排序

时间:2013-03-12 18:46:58

标签: sql sql-server tsql

我需要订购月份名称,例如1月,2月,3月,4月......直到DEC,我正在使用它 datepart(m,Time)但是我有来自2012年和2013年的数据。它显示了2012年1月,2013年1月,2012年2月,2013年2月的数据,但我还想订购年份,以便所有2012年的数据首先出现,然后是2013年的数据。< / p>

3 个答案:

答案 0 :(得分:4)

这是对部分问题的部分解决方案,但通常您会使用:

ORDER BY YEAR(TimeColumn), DATEPART(m, TimeColumn)

答案 1 :(得分:0)

试试这个:

ORDER BY DatePart(y,time),DatePart(m,time)

答案 2 :(得分:0)

重复已经说过的话

SELECT '01 jan 2012' AS Dt INTO #tempDates
UNION
SELECT '01 jun 2012'
UNION
SELECT '10 oct 2012'
UNION
SELECT '01 jan 2013'

--1
SELECT Dt
FROM #tempDates
ORDER BY DatePart(YY,Dt),DatePart(m,Dt)

--2
SELECT Dt
FROM #tempDates
ORDER BY YEAR(Dt), MONTH(Dt)

--3
SELECT Dt
FROM #tempDates
ORDER BY YEAR(Dt), DatePart(m,Dt)