这会将日期置于正确的 MySQL 日期格式中,然后排序会很简单。
SELECT
STR_TO_DATE(gear_checkout_summary.check_out_date,"%m/%d/%Y") AS fixed_date
...
FROM ...
WHERE ...
ORDER BY fixed_date DESC
正如其他人所说,如果可能的话,您应该修复数据库中的格式。您可能需要更改插入语句,但额外的工作是值得的。这是您在数据库中格式化日期需要做的事情
ALTER TABLE gear_checkout_summary ADD check_out_date_temp DATE AFTER check_out_date;
UPDATE gear_checkout_summary SET check_out_date_temp = STR_TO_DATE(gear_checkout_summary.check_out_date,"%m/%d/%Y");
ALTER TABLE gear_checkout_summary DROP check_out_date;
ALTER TABLE gear_checkout_summary CHANGE check_out_date_temp check_out_date DATE;
下面是上面代码的解释:
- 在表中创建新列。
- 使用格式正确的前一列中的日期填充新列。
- 删除旧格式错误的列。
- 将新列重命名为以前的列名。