簡體   English   中英

訂購 BY SQL 短日期

[英]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.

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