如何在SQL中将表列转换为日期类型并按升序排列



假设我们有一个表中的以下列(类型:character(:

date
Wed May 31 21:00:01 +0000 2017
Wed May 31 20:59:59 +0000 2017

我试图按升序对这个表进行排序,但它不起作用,因为它是按字母顺序排序的,因为列类型是character而不是date。你知道如何将SQL中的类型更改为date以便正确排序吗?

谢谢!

根据海报所说的有效从评论中转换答案

SELECT *
FROM YourTableName
ORDER BY CAST(DateInStringFormatFromTable as DateTime)

每次运行查询时,这将花费较长的时间。

您应该将表中的格式更改为datetime。或者创建第二列并将其更新为日期时间,然后将数据格式化为该列,然后按此排序。

更新以提供基于评论的其他选项:

你可以尝试转换,而不是铸造,看看这是否适用于你的降级

SELECT *
FROM YourTableName
ORDER BY CONVERT(DATETIME, DateInStringFormatFromTable, 102) DESC