gpt4 book ai didi

mysql - 将 varchar 转换为日期并按转换后的 varchar 排序

转载 作者:行者123 更新时间:2023-11-29 20:47:11 29 4
gpt4 key购买 nike

您好,我遇到问题,我的 friend 拒绝更改字段的数据类型,所以我在使用 order by 时遇到问题,这里是示例数据 04-07-2016(mm-dd-yyyy) 和字段名称名为 regis_date,表名为 users,这是我的查询。

SELECT regis_date FROM users ORDER BY regis_date DESC

输出:

array(5) {
[0]=>
object(stdClass)#625 (1) {
["regis_date"]=>
string(10) "04-09-2016"
}
[1]=>
object(stdClass)#622 (1) {
["regis_date"]=>
string(10) "04-08-2018"
}
[2]=>
object(stdClass)#624 (1) {
["regis_date"]=>
string(10) "04-07-2016"
}
[3]=>
object(stdClass)#627 (1) {
["regis_date"]=>
string(10) "04-07-2016"
}
[4]=>
object(stdClass)#621 (1) {
["regis_date"]=>
string(10) "04-06-2017"
}
}

如您所见,查询不正确,然后在谷歌搜索后我尝试这个

SELECT regis_date FROM users ORDER BY DATE_FORMAT(regis_date,'%m-%d-%Y') DESC

还有这个

SELECT CONVERT(DATE, regis_date, 120) FROM users ORDER BY regis_date

但输出为 NULL :'(

最佳答案

请尝试一下:

SELECT STR_TO_DATE(regis_date,'%m-%d-%Y') as dt 
FROM users
ORDER BY dt DESC

注意:您按 VARCHAR 列对结果进行排序。因此,您将获得基于 String 排序的结果。因此,我在这里将您的 varchar 转换为 DATE,然后根据此日期对象对结果集进行排序。

关于mysql - 将 varchar 转换为日期并按转换后的 varchar 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38365306/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com