这是我的代码:
SELECT *
FROM `products`
WHERE
DATE_ADD( UTC_TIMESTAMP( ) , INTERVAL 7 HOUR )
BETWEEN DATE_SUB( STR_TO_DATE( IsPromotionDate, '%m/%d/%Y %H:%i' ) , INTERVAL 3 DAY )
AND STR_TO_DATE( IsPromotionDate, '%m/%d/%Y %H:%i' )
但是结果返回 IsPromotionDate 之前的所有产品,但不返回 IsPromotionDate - 3 之后的产品。我仍然不明白为什么。
最佳答案
试试这个:
SELECT * FROM `products`
WHERE DATE_ADD(UTC_TIMESTAMP( ), INTERVAL 7 HOUR) BETWEEN DATE_SUB(IsPromotionDate, INTERVAL 3 DAY) AND IsPromotionDate
或
SELECT * FROM `products`
WHERE DATEDIFF(DATE_ADD(UTC_TIMESTAMP(), INTERVAL 7 HOUR), IsPromotionDate) BETWEEN 0 AND 3
关于MySQL使用之间查找记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20416096/