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

如何在SQL中将表列转换为日期类型并按升序排列?,sql,date,Sql,Date,假设表中有以下列(类型:character): 我试图按升序对该表进行排序,但它不起作用,因为它按字母顺序排序,因为列类型是字符,而不是日期。您知道如何将SQL中的类型更改为date,以便正确排序吗 谢谢 根据海报上的评论转换答案 SELECT * FROM YourTableName ORDER BY CAST(DateInStringFormatFromTable as DateTime) 每次运行查询时,这将花费很长时间 您应该将表中的格式更改为datetime。或者创建第二列并将其更新

假设表中有以下列(类型:character):

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


谢谢

根据海报上的评论转换答案

SELECT *
FROM YourTableName
ORDER BY CAST(DateInStringFormatFromTable as DateTime)
每次运行查询时,这将花费很长时间

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

更新后可根据评论提供其他选项:

您可以尝试转换,而不是强制转换,以查看这是否适用于您的降级

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

用您正在使用的数据库标记您的问题。还要解释为什么要以字符串形式存储日期值,而不是使用所有数据库都支持的适当的日期时间/时间戳类型。我下载的数据将日期值存储为字符串,而不是我故意这么做,这就是为什么我想知道是否有办法转换为时间戳类型?按类型排序(stringFromTable为DateTime)。但是每次运行查询时,这将花费很长时间。您应该将表中的格式更改为datetime。或者创建第二列并将其更新为datetime并将数据格式化为该列,然后按该列排序。@Brad这很有效,谢谢@帮帮我,如果你能接受的话,我添加了我的评论作为回答。谢谢!你能不能也包括如何按降序报税?在查询结束时,我尝试了
DESC
,但由于某种原因,顺序没有改变。按CAST排序(DateInStringFormatFromTable作为DateTime)DESC这应该行得通。我也这么认为,但并不奇怪,我在我的DB(MS SQL 2012)中的一个示例表上进行了测试,结果是行得通的。您在cast之外有DESC吗?是的,在cast之外非常奇怪(使用R Studio中的包来运行SQL代码)。是否有其他方法可以选择最后一行中的日期,而不使用DESC重新排列并像往常一样选择最上面一行?
SELECT *
FROM YourTableName
ORDER BY CONVERT(DATETIME, DateInStringFormatFromTable, 102) DESC