MySQL使用之间查找记录

标签 mysql sql datetime select between

这是我的代码:

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/

相关文章:

php - CakePHP:HABTM 多次

php - 在 PHP 查询中打乱 MySQL 行

c# - 来自字符串帮助的日期。我可以转换成我想要的字符串,但我无法转换回来

php symfony Doctrine 或从 2 个表中获取数据

django - 导出日期显示为 UTC

sql - 如何找到当前时间段与任何表字段匹配?

mysql - 由于数据类型, '' 中的未知列 'field list'

mysql - 对多列进行分组

mysql - 在 MIN 日期和 MIN 日期 + 11 个月之间进行选择 - MySQL

sql - 为什么 Oracle 中 ORDER BY 的性能优于 MAX