MySQL日期格式转换DD/MM/YYYY选择查询?(like php strtotime)

问题描述

我有点困惑如何按日期格式排序。

对于格式为YYYY-MM-DD,您可以这样做:...ORDER BY date DESC...

你如何订购DD/MM/YYYY

这不工作:

SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14

最佳解决方案

您可以使用STR_TO_DATE()将您的字符串转换为MySQL日期值和ORDER BY的结果:

ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')

但是,将列更改为DATE数据类型,而不是使用字符串。

次佳解决方案

猜猜你可能只想格式化输出日期?那么这就是你以后的事情

SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate 
FROM table 
ORDER BY date DESC 
LIMIT 0,14

还是你实际上想按年前的前几天排序?

第三种解决方案

SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC

第四种方案

使用:

SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y") AS 'NAME'
SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME'

参考:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

第五种方案

ORDER BY日期类型不依赖于日期格式,日期格式仅用于显示,在数据库中它们是相同的数据。

参考文献

 

 

本文:MySQL日期格式转换DD/MM/YYYY选择查询?(like php strtotime)

发表评论