我将在查询中发出命令,如:
SELECT * FROM `sales_report` ORDER BY `cancel_date`, `pur_date`
但它不起作用,请你检查这个查询有什么问题,因为它没有订购日期?
pur_date类型是日期,cancel_date类型是文本,所以它是问题吗?我不能改变它的类型。
我回应一个不同的想法:
if(cancel_date != ''){
$transection_date = cancel_date;
}
else {
$transection_date = pur_date;
}
答案 0 :(得分:3)
尝试使用STR_TO_DATE()
功能:
SELECT
*
FROM
`sales_report`
ORDER BY
STR_TO_DATE(`cancel_date`, '%Y-%m-%d'), `pur_date`;
在评论中提到 zerkms :您应该使用格式说明符,这取决于cancel_date
列中的文本值。
答案 1 :(得分:0)
SELECT *, CAST(`cancel_date` as DateTime) cancelDate
FROM `sales_report`
ORDER BY `cancelDate`, `purDate`
这应该有效