我对如何按日期格式订购感到困惑。
对于YYYY-MM-DD
格式,您可以执行此操作:...ORDER BY date DESC...
您如何按DD/MM/YYYY
订购?
这不起作用:
SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
答案 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
格式显示小时。