【发布时间】:2012-05-25 03:21:11
【问题描述】:
我对如何按日期格式排序有点困惑。
对于YYYY-MM-DD 格式,您可以这样做:...ORDER BY date DESC...
DD/MM/YYYY如何订购?
这不起作用:
SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
【问题讨论】:
标签: mysql
我对如何按日期格式排序有点困惑。
对于YYYY-MM-DD 格式,您可以这样做:...ORDER BY date DESC...
DD/MM/YYYY如何订购?
这不起作用:
SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
【问题讨论】:
标签: mysql
猜你可能只是想格式化输出日期?那么这就是你所追求的
SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate
FROM table
ORDER BY date DESC
LIMIT 0,14
或者您真的想按年前月前天排序?
【讨论】:
mysql> DESCRIBE Table; 并粘贴输出
您可以使用STR_TO_DATE() 将您的字符串转换为 MySQL 日期值并使用ORDER BY 转换结果:
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
【讨论】:
%l 不起作用?它每个月都会提供12,我不得不更改为%m。
用途:
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
【讨论】:
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");
输出是 10/05/2019 07:30 PM
【讨论】:
就我而言,这很有效
str_to_date(date, '%e/%m/%Y' )
【讨论】:
如果小时很重要,我使用str_to_date(date, '%d/%m/%Y %T' ),%T 以hh:mm:ss 的格式显示小时。
【讨论】:
%T 以时间格式显示值。顺便说一句,你得到了我的支持。
ORDER BY 日期类型不依赖于日期格式,日期格式仅用于显示,在数据库中,它们是相同的数据。
【讨论】: