我有这 3 个 VARCHAR 数据:
Mar 06 2018 06:42:08
Mar 04 2017 23:21:15
Feb 21 2018 14:48:46
Jul 29 2016 11:56:22
Mar 06 2018 06:41:54
我想知道如何构建我的查询:
SELECT `users`.`last_online` FROM `users` ORDER BY ... DESC
这样我就可以得到以下输出
Mar 06 2018 06:42:08
Mar 06 2018 06:41:54
Feb 21 2018 14:48:46
Jul 29 2017 11:56:22
Mar 04 2017 23:21:15
注意我不想使用 DATETIME,我正在使用 VARCHAR,请不要提出其他建议。
更新
根据 Uuerdo 答案中的文档,我尝试了以下查询,但尽管看起来可行,但事实并非如此:
SELECT `users`.`last_online` FROM `users` ORDER BY STR_TO_DATE(`users`.`last_online`, '%M %d %Y %h:%i:%s') DESC
我需要它来考虑MM/DD/YYYY H:i:S
。我需要使用哪些函数来正确构建此查询,以及生成的查询是什么?
最佳答案
尝试使用这个:
SELECT `users`.`last_online`,
FROM `users`
ORDER BY STR_TO_DATE(`users`.`last_online`, '%M %d %Y %H:%i:%s') DESC
您需要使用“%H”而不是“%h”来表示 24 小时时间。
关于mysql - 在 MySQL 中按 DESC 排序日期/时间 VARCHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49182472/