【问题标题】:How to Sort Varchar date in Descending order MySql?如何按降序排序 MySql 的 Varchar 日期?
【发布时间】:2019-12-13 04:30:02
【问题描述】:

我将日期时间存储在表中的 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

如何正确排序?谢谢。

【问题讨论】:

  • 你应该将日期存储在datetime类型
  • 这能回答你的问题吗? MySQL date format DD/MM/YYYY select query?
  • @DevsiOdedra 不,它没有。现在得到 2019 年 11 月 26 日下午 3:21:36、2019 年 11 月 27 日下午 4:56:11、2019 年 12 月 13 日下午 12:05:30、2019 年 11 月 27 日下午 5:35:32。 ...现在有点混乱了。

标签: mysql


【解决方案1】:

您应该避免将日期存储为字符串。作为临时解决方法,您可以在此处使用 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;

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多