日期格式 DD/MM/YYYY 选择查询?

我对如何按日期格式订购有点困惑。

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

你们怎样通过 DD/MM/YYYY订购?

这样不行:

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

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

您可以使用 STR_TO_DATE()将字符串转换为 MySQL 日期值,结果是:

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

但是,明智的做法是将列转换为 DATE数据类型,而不是使用字符串。

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

我猜你可能只是想格式化输出日期,那么这就是你想要的

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

或者您实际上希望按年前月前日进行排序?

对我的案子来说,这很管用

str_to_date(date, '%e/%m/%Y' )

用途:

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

如果时间很重要,我使用 str_to_date(date, '%d/%m/%Y %T' )%Thh:mm:ss格式显示时间。

SELECT DATE_FORMAT(COLUMN_NAME, "%d/%m/%Y %h:%i %p");

或者

SELECT DATE_FORMAT("2019-05-10 19:30:10", "%d/%m/%Y %h:%i %p");

输出为 2019年5月10日07:30 PM

这个画面会帮助你。

Date Format

SELECT DATE_FORMAT("2019-05-10 19:30:10", "%d/%m/%Y %h:%i %p");