我正在尝试查找两个查询之间的数据 我的数据库包含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
则其工作
很困惑,请帮忙
答案 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')