MYSQL 查询 : ORDER BY specific date

标签 mysql date sql-order-by

我目前正在创建一个可以添加视频的网站。添加视频时,我需要提供发布日期,格式如下:“21-09-2012”。

现在,当我使用简单的 ORDER BY 命令时,它只对前两位数字进行排序。

有谁知道我该如何解决这个问题?

最佳答案

听起来您正在将日期字段存储为字符串。如果是这种情况,那么您需要在尝试订购之前将该值转换为日期:

SELECT  STR_TO_DATE(yourdate, '%d-%m-%Y')
FROM    yourtable

关于 STR_TO_DATE 的 MySQL 文档

但是,您应该将日期存储在日期数据类型中,而不是字符串值。这样您就不必执行这些类型的转换。

您也可以在 ORDER BY 语句本身中进行转换:

order by STR_TO_DATE(yourdate, '%d-%m-%Y')

关于MYSQL 查询 : ORDER BY specific date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936211/

相关文章:

mysql - SQL组函数

mysql - 将 JOIN 限制为 1 个结果(最新) MySQL

c# - 如何仅使用 LocalDB 2016 发布我的 C# winform 程序?

date - 为什么这个 webwork 属性标签给出不同的日期格式?

mysql - Mysql 中的排名值

mysql - mysql 中表错误的 key 文件不正确

javascript - javascript 中的简单日期

javascript - 在 Javascript/ECMAScript 中计算时间跨度

一张表的 MySQL UNION 查询 + ORDER BY

mysql - 在 order by 旁边使用 case 时出错