Mysql日期排序有误
P粉759451255
P粉759451255 2024-04-04 12:09:24
0
2
456

SELECT
co.id,
IFNULL( oe.follow_status, 'unFollow' ) AS followStatus,
co.due_time 
FROM
car_order co
LEFT JOIN order_expire oe ON oe.order_id = co.id 
WHERE
co.type = '贷款' 
AND co.STATUS = '已放款' 
AND co.approve_status != '结清成功' 
AND date_FORMAT( co.due_time, '%Y-%m-%d' ) <= '2022-10-29' 
ORDER BY
field( oe.follow_status, 'unFollow', 'follow' ),
co.due_time DESC,
co.id DESC

日期排序错误。应该怎么写呢?

P粉759451255
P粉759451255

全部回复(2)
P粉440453689
SELECT
co.id,
IFNULL( oe.follow_status, 'unFollow' ) AS followStatus,
co.due_time 
FROM
car_order co
LEFT JOIN order_expire oe ON oe.order_id = co.id 
WHERE
co.type = '贷款' 
AND co.STATUS = '已放款' 
AND co.approve_status != '结清成功' 
AND co.due_time 

您应该改为通过 IFNULL 别名 followStatus 进行排序。

P粉064448449

假设 due_time 是时间戳列,您应该能够直接将其与日期文字进行比较:

SELECT co.id,
       IFNULL(oe.follow_status, 'unFollow') AS followStatus,
       co.due_time 
FROM car_order co
LEFT JOIN order_expire oe ON oe.order_id = co.id 
WHERE co.type = '贷款' AND 
      co.STATUS = '已放款' AND
      co.approve_status != '结清成功' AND
      co.due_time 

DATE_FORMAT() 函数用于将日期/时间戳转换为字符串,但这里不需要它,因为可以直接比较日期/时间戳列。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板