想知道是否有任何爱好者可以帮助我。我试图获取两个日期之间的记录数量,我使用我在这里找到的一些帖子使这个查询非常简单,它总是返回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()
我做错了什么?
答案 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()
希望这可能对某人有用。