按时间顺序返回所有月份名称,而不是按字母顺序返回

时间:2011-08-09 00:35:41

标签: sql-server

我有一个日期字段(例如故障单的日志日期),其中包含所有故障单创建日期。我想按顺序显示所有月份名称(即1月,2月,3月......)

日志日期格式为2011-08-09 10:13:000。我可以使用DateName(Month,(Log_Date))来表示月份名称。

当我使用查询时

SELECT DISTINCT DateName(Month,(Log_Date)) FROM TABLE_NAME 
ORDER BY DateName(Month(Log_Date))

显示4月,8月,...但是我想显示1月,2月,3月......

1 个答案:

答案 0 :(得分:3)

按订单排序

SELECT DISTINCT Datename(month,(Log_Date)), month(Log_Date) 
FROM TABLE_NAME 
ORDER BY month(Log_Date)

所以你按月份的数字表示排序,而不是名字。

或者只选择月份名称:

CREATE TABLE #tempMonth
( 
    id INT,
    name VARCHAR(100)
)
INSERT INTO #tempMonth

SELECT DISTINCT month(ACT_CustSince) as id, DATENAME(month, ACT_CustSince) as name
FROM tblAccounts
ORDER BY month(ACT_CustSince)


SELECT name
FROM #tempMonth

DROP table #tempMonth