运算符之间没有正常工作的mysql

时间:2018-03-19 08:35:00

标签: mysql sql

我正在尝试查找两个查询之间的数据 我的数据库包含datetime中的日期,所以我转换了它 这是我的查询

SELECT *
FROM payments
LEFT JOIN rentals ON payments.rental_id=rentals.rental_id
WHERE trim(DATE_FORMAT(payments.payment_date,'%d/%m/%Y%'))
          BETWEEN "28/05/2005" AND "10/06/2005"

这会带来空洞的结果,但是如果我将日期更改为30/06/2005则其工作 很困惑,请帮忙

1 个答案:

答案 0 :(得分:3)

你应该将字符串转换为日期而不是将日期转换为字符串,否则你要比较字符串使用而不是日期

  SELECT *
  FROM payments
  LEFT JOIN rentals ON payments.rental_id=rentals.rental_id
  WHERE payments.payment_date 
            BETWEEN str_to_date("28/05/2005", '%d/%m/%Y')  
                AND  str_to_date("10/06/2005", '%d/%m/%Y')