我对如何按日期格式订购有点困惑。
对于格式 YYYY-MM-DD,您可以这样做: ...ORDER BY date DESC...
YYYY-MM-DD
...ORDER BY date DESC...
你们怎样通过 DD/MM/YYYY订购?
DD/MM/YYYY
这样不行:
SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
ORDERBY 日期类型不依赖于日期格式,日期格式仅用于在数据库中显示它们是相同的数据。
您可以使用 STR_TO_DATE()将字符串转换为 MySQL 日期值,结果是:
STR_TO_DATE()
ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')
但是,明智的做法是将列转换为 DATE数据类型,而不是使用字符串。
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' ),%T以 hh:mm:ss格式显示时间。
str_to_date(date, '%d/%m/%Y %T' )
%T
hh: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
这个画面会帮助你。