是否可以使用SQL以新格式显示日期,例如dd-mm-yyyy然后按日期排序?
我尝试过类似的事情:
SELECT CONVERT(varchar(10), [Date Depart], 105) AS [Date Depart]
FROM FLIGHT
ORDER BY CONVERT(varchar(10), [Date Depart], 105) DESC
它无法在MS SQL Server上运行。它仍然按VARCHAR排序。
答案 0 :(得分:4)
按未转换日期排序:
SELECT CONVERT(varchar(10), [Date Depart], 105) AS [Date Departed]
FROM FLIGHT
ORDER BY [Date Depart] DESC
即使您在选择列表中选择转换为其他格式的日期,您仍然可以按实际日期字段进行排序。
还将列命名为[Date Departed],以便ORDER BY子句不会认为我引用了列别名而不是实际的字段名称。在适用时,ORDER BY子句会在引用实际字段名称之前认为您引用了列别名。因此,如果您按列命令给出的别名恰好与表中的实际字段名称相同,则它将首先按结果列排序,而不是表中的实际字段。
如果您绝对想要使用[Date Depart]作为列名称,则可以使用此选项:
SELECT CONVERT(varchar(10), [Date Depart], 105) AS [Date Depart]
FROM FLIGHT
ORDER BY cast([Date Depart] as date) desc
它将结果列转换回日期。
答案 1 :(得分:1)
您可以使用表格别名按原始日期订购:
SELECT CONVERT(varchar(10), [Date Depart], 105) AS [Date Depart]
FROM FLIGHT
ORDER BY FLIGHT.[Date Depart] DESC;