簡體   English   中英

T-SQL按年份和月份排序

[英]T-SQL Sorting by year and month

我想按照日期yyyy,mm按日期排序。 我首先嘗試使用VARCHARS:

GROUP BY (YEAR(join_date) AS VARCHAR(4)) + '-' + CAST(MONTH(join_date) AS VARCHAR(2))

但是將它們轉換為varchar意味着我的排序就像2014.1-2014.11-2014.12-2014.2如何按年份和月份順序對它們進行正確排序?

SELECT Year(join_date) + MONTH(join_date) AS Date, COUNT(*) AS Count
FROM X
WHERE mtype ='A' AND (join_date BETWEEN DATEADD(year, -5, GETDATE()) AND GETDATE())
GROUP BY YEAR(join_date) + MONTH(join_date)
ORDER BY Date ASC

您只需要將它們轉換為varchar, YEARMONTH返回整數:

SELECT Year(join_date) As JoinedYear, MONTH(join_date) AS JoinedMonth, COUNT(*) AS Count
FROM X
WHERE mtype ='A' AND (join_date BETWEEN DATEADD(year, -5, GETDATE()) AND GETDATE())
GROUP BY YEAR(join_date), MONTH(join_date)
ORDER BY YEAR(join_date) ASC, MONTH(join_date) ASC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM