mysql - 如何按降序排序 MySql 的 Varchar 日期?
问题描述
我将日期时间存储在表中的 varchar 中。这是我的日期时间格式:12/13/2019 12:05:30 PM
。我想按降序对这些日期进行排序。这是我的 sql
SELECT CreatedOn FROM advweb_usertemplatedesign Where UserId = 'fa69147ca33746cd8700a892298b11de' And ActiveStatus = 1 Order by CreatedOn Desc Limit 20
我得到的结果是
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
代替
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
如何正确排序?谢谢你。
解决方案
您应该避免将日期存储为字符串。作为临时解决方法,您可以STR_TO_DATE
在此处使用 MySQL 的功能:
SELECT CreatedOn
FROM advweb_usertemplatedesign
WHERE
UserId = 'fa69147ca33746cd8700a892298b11de' AD
ActiveStatus = 1
ORDER BY
STR_TO_DATE(CreatedOn, '%m/%d/%Y %r') DESC
LIMIT 20;
推荐阅读
- reactjs - 未捕获的错误:Reference.set 失败:第一个参数在属性“users.undefined.email”中包含未定义
- java - How to extract field from Google books api using GSON and Jsoup
- javascript - reactjs - 如何在reactjs中的同一个div上使用多个独立的条件样式?
- python-3.x - 使用类作为装饰器
- html - How to open file dialog box when click an image in Angular 6
- ubuntu - 关于在 ubuntu 18.04 上安装 FSL 6.0 的问题
- c# - 像整数一样使用标志枚举空间
- angular - TypeScript:重用前端(Angular)和后端的接口和类
- html - 无法删除标题出现的边框
- python - 如何在不更改熊猫中的列名和行名的情况下将数据从一个数据帧复制到另一个数据帧