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

时间:2012-05-17 14:23:45

标签: 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

8 个答案:

答案 0 :(得分:154)

猜猜你可能只想格式化输出日期?那么这就是你追求的目标

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

或者你真的想在年前一个月前排序吗?

答案 1 :(得分:122)

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

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

但是,最好将列转换为DATE数据类型,而不是使用字符串。

答案 2 :(得分:34)

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

答案 3 :(得分:27)

使用:

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

答案 4 :(得分:4)

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

OR

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

输出为 2019/10/05下午

答案 5 :(得分:3)

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

答案 6 :(得分:3)

对于我的案例,这是有效的

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

答案 7 :(得分:1)

如果小时很重要,我使用.btn { border: 2px solid transparent; background: white; color: black; font-size: 16px; line-height: 15px; padding: 10px 0; display: block; width: 150px; margin: 0 auto; } .title { position: relative; top: 20px; } .title p { text-align: center; font-size: 30px; } .title span { color: black; } #info { position: relative; top: 50px; left: 20px; } #info p { font-size: 15px !important; width: 310px; } #close { position: relative; top: 70px; } str_to_date(date, '%d/%m/%Y %T' )%T格式显示小时。