假设我们有一个表中的以下列(类型: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