两个日期之间的返回行计数始终返回0

时间:2013-08-04 03:58:43

标签: mysql sql

想知道是否有任何爱好者可以帮助我。我试图获取两个日期之间的记录数量,我使用我在这里找到的一些帖子使这个查询非常简单,它总是返回0.。

date_added是时间戳

SELECT COUNT(id) 
FROM item 
WHERE date_added >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND date_added <= NOW() 

我也试过这个:

SELECT COUNT(id) 
FROM item 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND NOW() 

我做错了什么?

2 个答案:

答案 0 :(得分:2)

使用DATE(NOW())和DATE(date_added)来比较mysql中的日期。它将为您提供时间戳的日期部分。

例如 CURDATE()是2008-11-11和 现在()是2008-11-11 12:45:34

一个是日期,另一个是时间戳。您应该同时使用两个日期或两个时间戳。我上面讲过的一个解决方案。

答案 1 :(得分:0)

今天早上我重新运行了这个查询并且工作正常,所以我不确定昨晚除了小时之外出了什么问题。感谢大家的意见。

SELECT COUNT(id) 
FROM item 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE()

工作得很好

SELECT COUNT(id) 
FROM item 
WHERE DATE(date_added) BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE()

希望这可能对某人有用。