PHP MySQL日期排序


PHP MySQL date ordering

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

$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");

我的意思是,它不会在最低日期前订购到最大的

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

因此,由于您的日期格式类似于27.03.2015,使用.作为delimeter,因此您需要确保在该参数中使用.而不是/

同样,小写%y表示2位数的年份,所以您需要%Y,因为您使用的是4位数:

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

您没有给出时间格式的示例,但您可以通过阅读date_format()的文档来了解如何正确执行时间格式。但请注意,我在时间部分将%m更改为%i:您在月和分钟内都使用%m,这显然是错误的。