好的我试着按日期和时间按升序排序结果,但到目前为止这不起作用:(
$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");
我的意思是它没有从最低的日期订购到最大的
答案 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
表示月份和分钟,这显然是错误的。