2013-08-04 57 views
0

想知道是否有爱好者可以帮助我。我试图让两个日期之间的记录数,我用一些帖子,我发现就在这里做这个查询很简单,它总是返回02个日期之间的返回行数总是返回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() 

我在做什么错?

+1

为什么你使用'CURDATE()'作为开始日期,'NOW()'作为结尾?另外,你的'date_added'列是什么数据类型? –

+0

@KenWhite我想我只是尝试不同的功能,当我发现它不会按预期工作。两种方式都行不通。 – Jonnny

+0

@KenWhite啊,timestamp(),我觉得这可能是一个问题。 – Jonnny

回答

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() 

希望,可能是使用的人。

2

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

对于实施例 CURDATE()是2008-11-11和 NOW()是2008-11-11 12点45分34秒

一个是日期,另一个是时间戳。您应该采取两个日期或两个时间戳。我上面告诉过的一个解决方案。