php - ORDER BY 两个日期mysql查询

标签 php sql sql-order-by

我将在查询中给出顺序,例如:

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

最佳答案

尝试使用STR_TO_DATE()功能:

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

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

关于php - ORDER BY 两个日期mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16834404/

相关文章:

php - 使用 PHP 的 xpath 选择属性值

php - ORDER BY 日期同时也在 MySQL 查询中使用 LIMIT - PHP

sql - 根据行 id 在排序中查找行号,然后找到它的邻居

php - 如何从数据库中获取插入前的最后一个插入ID

php - Latin-1/UTF-8 编码 php

php - Adodb Active Record 与 Zend db_table

sql - 从一个表列中获取不同的对

sql - 为什么我不能修改 Postgres 中的列类型

sql - 在一列中选择可选数量的值

mysql - 使用 max 和 order 进行分组