简体   繁体   English

如何按降序对MySql的Varchar日期进行排序?

[英]How to Sort Varchar date in Descending order MySql?

I'm storing datetime in varchar in my table.我将日期时间存储在我的表中的 varchar 中。 This my datetime format : 12/13/2019 12:05:30 PM .这是我的日期时间格式: 12/13/2019 12:05:30 PM I want to sort these date in descending order.我想按降序对这些日期进行排序。 This is my sql这是我的sql

SELECT CreatedOn FROM advweb_usertemplatedesign Where UserId = 'fa69147ca33746cd8700a892298b11de' And ActiveStatus = 1 Order by CreatedOn Desc Limit 20

The result I'm getting is我得到的结果是

12/5/2019 5:48:19 PM
12/4/2019 4:49:10 PM
12/3/2019 5:57:16 PM
12/13/2019 12:05:30 PM
12/12/2019 6:01:31 PM

Instead of代替

12/13/2019 12:05:30 PM
12/12/2019 6:01:31 PM
12/5/2019 5:48:19 PM
12/4/2019 4:49:10 PM
12/3/2019 5:57:16 PM

How to properly sort it?如何正确排序? Thank you.谢谢你。

You should avoid storing your dates as strings.您应该避免将日期存储为字符串。 As a temporary workaround, you may use MySQL's STR_TO_DATE function here:作为临时解决方法,您可以在此处使用 MySQL 的STR_TO_DATE函数:

SELECT CreatedOn
FROM advweb_usertemplatedesign
WHERE
    UserId = 'fa69147ca33746cd8700a892298b11de' AD
    ActiveStatus = 1
ORDER BY
    STR_TO_DATE(CreatedOn, '%m/%d/%Y %r') DESC
LIMIT 20;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM