[英]Order BY SQL Short Date
我想在短期內訂購
ShortDate
20-Nov
17-Nov
29-Nov
15-Nov
7-Nov
6-Dec
25-Nov
14-Nov
9-Nov
12-Nov
5-Dec
26-Nov
28-Nov
8-Nov
1-Dec
3-Dec
23-Nov
我用了
ORDER BY CAST(CAST(DATEPART(MONTH,ShortDate) AS VARCHAR(10)) + CAST(RIGHT( '0' + CAST(DAY(ShortDate) AS varchar(2)), 2) AS VARCHAR(10)) AS INT) DESC
整個查詢是
SELECT StaffAttendencecount ,TC.ShortDate
FROM #TempStaffAttendnece
INNER JOIN #TempCONStaffAttendnece TC
ON #TempStaffAttendnece.ShortDate = TC.ShortDate
ORDER BY CAST(CAST(DATEPART(MONTH,TC.ShortDate) AS VARCHAR(10)) + CAST(RIGHT( '0' + CAST(DAY(TC.ShortDate) AS varchar(2)), 2) AS VARCHAR(10)) AS INT) DESC
但它不工作我得到
消息 241,級別 16,State 1,第 80 行從字符串轉換日期和/或時間時轉換失敗。
誰能幫忙
理想情況下,您不應將日期存儲為文本,或者,如果必須,請嘗試使用至少包含年、月和日的 ISO 格式。 話雖這么說,你可以在這里形成一個真誠的,然后對它進行排序:
SELECT ShortDate
FROM yourTable
ORDER BY TRY_CONVERT(datetime, ShortDate + '-2020');
但是,如上所述,您應該將此查詢視為短期修復,直到您有機會修復數據 model 並將ShortDate
列轉換為正確的真實日期或時間戳列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.