PHP MySQL日期排序

时间:2015-03-20 18:38:26

标签: php mysql

好的我试着按日期和时间按升序排序结果,但到目前为止这不起作用:(

$kalendarquery = mysqli_query($con, "SELECT
people.firstname,
people.lastname,
people.id,
people.avatar,
dates.date,
dates.time,
dates.timezonedate
FROM people
INNER JOIN dates ON
people.id=dates.invited_id
WHERE dates.inviter_id='$user_id' AND status='1'
ORDER BY STR_TO_DATE(CONCAT(dates.date,' ',dates.time), '%d/%m/%y %h:%m')     ASC
LIMIT 50");

我的意思是它没有从最低的日期订购到最大的

1 个答案:

答案 0 :(得分:0)

STR_TO_DATE的第二个参数必须与char字段中的日期格式相匹配;否则,转换只会为每一行返回NULL,这就是为什么它没有被订购。

因为您的日期格式为27.03.2015,使用.作为分隔符,所以您需要确保在该参数中使用.而不是/

小写%y也是2位数年份,因此您需要%Y,因为您使用的是4位数字:

ORDER BY STR_TO_DATE(CONCAT(dates.date,' ',dates.time), '%d.%m.%Y %h:%i')     ASC

您没有举例说明您的时间格式,但您可以通过阅读docs for date_format()来弄清楚如何正确地做到这一点。但是上面的通知我在时间部分将%m更改为%i:您使用%m表示月份和分钟,这显然是错误的。