如何在sql server中设置按日期列的顺序

时间:2014-03-12 07:34:14

标签: sql-server

我在数据库中有一个表,像

这样的列
01-03-2013
01-04-2013
02-03-2013

我希望按照

显示顺序
01-03-2013
02-03-2013
01-04-2013

请帮帮我。

1 个答案:

答案 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)