2016-06-14 34 views
1

好了,所以我有以下MySQL查询:不一致性与MySQL DATEDIFF功能

SELECT COUNT(*) FROM `dates` WHERE firstDate IS NOT NULL AND secondDate IS NOT NULL 
AND DATEDIFF(secondDate, firstDate) >= 30 

即查询返回9.值然后我使用以下查询:

SELECT COUNT(*) FROM `dates` WHERE firstDate IS NOT NULL AND secondDate IS NOT NULL 
AND DATEDIFF(secondDate, firstDate) >= 90 

第二个查询返回结果12.这怎么可能?这两个日期都是MySQL数据库中的日期数据类型。

+0

让我问你:为什么不可能? – Devon

+2

这似乎不可能。 –

+0

添加[sqlfiddle](http://sqlfiddle.com/)来证明它 – 2016-06-14 02:50:54

回答

2

尝试这样做

SELECT firstDate, secondDate, DATEDIFF(secondDate, firstDate) AS diff 
FROM `dates` WHERE firstDate IS NOT NULL AND secondDate IS NOT NULL 
AND DATEDIFF(secondDate, firstDate) >= 30 

SELECT firstDate, secondDate, DATEDIFF(secondDate, firstDate) AS diff 
FROM `dates` WHERE firstDate IS NOT NULL AND secondDate IS NOT NULL 
AND DATEDIFF(secondDate, firstDate) >= 90 

而是所产生的行数,你会看到实际的行名单。 这可能会帮助你弄清楚这一点。