我在数据库中有一个表,像
这样的列01-03-2013
01-04-2013
02-03-2013
我希望按照
显示顺序01-03-2013
02-03-2013
01-04-2013
请帮帮我。
答案 0 :(得分:2)
很可能您的列未存储为日期数据类型之一,而是根据ASCII代码将其排序为字符串
您可以将列投射以进行排序。
SELECT * FROM tbl
ORDER BY CONVERT(datetime, userColumn, 106)
否则它是直截了当的
SELECT * FROM tbl
ORDER BY userColumn
如果您的列也包含无效记录,则可以使用此类记录的默认日期
SELECT * FROM tbl
ORDER BY CONVERT(datetime,
CASE ISDATE(userColumn)
WHEN 1 THEN userColumn
ELSE '01-01-1900'
END, 106)