2

我将在查询中下达命令,例如:

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;
}
4

2 回答 2

3

尝试使用STR_TO_DATE()功能:

SELECT
    *
FROM
    `sales_report`
ORDER BY
    STR_TO_DATE(`cancel_date`, '%Y-%m-%d'), `pur_date`;

正如评论中提到的zerkms:您应该使用格式说明符,具体取决于您在cancel_date列中的文本值。

于 2013-05-30T11:04:02.400 回答
0
SELECT *, CAST(`cancel_date` as DateTime) cancelDate 
FROM `sales_report`
ORDER BY `cancelDate`, `purDate`

这应该工作

于 2013-05-30T11:03:43.997 回答