0

想知道有没有爱好者可以帮助我。我正在尝试获取两个日期之间的记录数,我使用我在这里找到的一些帖子使这个查询变得非常简单,它总是返回 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() 

我究竟做错了什么?

4

2 回答 2

2

使用 DATE(NOW()) 和 DATE(date_added) 比较 mysql 中的日期。它会给你时间戳的日期部分。

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

一个是日期,另一个是时间戳。您应该采用两个日期或两个时间戳。我在上面说过的一种解决方案。

于 2013-08-04T04:28:37.030 回答
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()

希望这可能对某人有用。

于 2013-08-04T14:19:33.317 回答