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

Kar*_*son 125 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
Run Code Online (Sandbox Code Playgroud)

tra*_*per 166

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

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

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

  • `mysql> DESCRIBE表;`并粘贴输出 (2认同)

egg*_*yal 136

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

ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)

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


Joh*_*nde 37

SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC
Run Code Online (Sandbox Code Playgroud)

  • 它只是我,还是'%l`不起作用?它每个月给出"12",我不得不改为"%m". (3认同)

Elt*_*sta 33

使用:

SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y") AS 'NAME'
SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME'
Run Code Online (Sandbox Code Playgroud)

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


Man*_*ani 20

SELECT DATE_FORMAT(COLUMN_NAME, "%d/%m/%Y %h:%i %p");
Run Code Online (Sandbox Code Playgroud)

或者

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

输出是10/05/2019 07:30 PM


小智 6

就我而言,这有效

str_to_date(date, '%e/%m/%Y' )
Run Code Online (Sandbox Code Playgroud)


小智 6

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


xda*_*azz 5

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


Ahs*_*jam 5

这张图片会对你有所帮助。

日期格式

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