【问题标题】:How to display recently added data by date order in MySql?如何在 MySql 中按日期顺序显示最近添加的数据?
【发布时间】:2019-04-10 08:28:34
【问题描述】:

我希望按日期顺序对表格进行排序,以便最近添加的数据位于表格顶部。

我使用查询排序为:

select date from register_table order by date desc.

当前表格显示数据为:

date

02.04.2019
05.04.2019
09.04.2019
10.04.2019
06.02.2019
23.01.2019
11.01.2019

我希望我的表格显示为:

date

10.04.2019
09.04.2019
05.04.2019
02.04.2019
06.02.2019
23.01.2019
11.01.2019

如何按日期顺序显示数据?

【问题讨论】:

  • 是日期类型的日期吗?或 varchar
  • @M.Hemant 它的 varchar
  • 你尝试过 Gordon Linoff 的回答吗?

标签: mysql sql date sql-order-by


【解决方案1】:

您的根本问题是没有将日期存储为date。你应该解决这个问题。

要使查询正常工作,请使用:

order by str_to_date(date, '%m.%d.%Y')

要修复数据,您可以:

update register_table
    set date = str_to_date(date, '%m.%d.%Y');

alter table register_table
    modify date date;

你可以看到这是如何工作的here

【讨论】:

  • 我现在明白为什么我的不工作了!所以REPLACE 不是必需的。谢谢戈登。
  • @binz。 . .你有理由不接受这个答案吗?它比替代方案更简单。
【解决方案2】:

我不知道你的日期为什么会这样存储,但在这里,试试看:

SELECT date FROM date ORDER BY STR_TO_DATE(REPLACE(date,'.','-'),'%d-%m-%Y') DESC;

如果您想查看到底发生了什么,请运行以下查询:

SELECT date,STR_TO_DATE(REPLACE(date,'.','-'),'%d-%m-%Y') FROM date;

如果你还是不太明白,请参考MySQL STR_TO_DATE functionMySQL REPLACE function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2014-10-13
    • 2016-07-07
    • 2021-02-17
    • 1970-01-01
    • 2019-12-08
    相关资源
    最近更新 更多