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