MYSQL DATE()函数对我的查询结果有什么影响?
请不要告诉我不要使用date()。它在做什么?
我正在使用列timeStamp
,这是一个时间戳类型字段,通过默认的CURRENT_TIMESTAMP自动填充。
SELECT COUNT(*) FROM `tableX`;
返回大约100万的值。
SELECT COUNT(*) FROM `tableX` WHERE `timeStamp` BETWEEN "2015-04-01" AND "2015-04-10";
返回388725
SELECT COUNT(*) FROM `tableX` WHERE Date(`timeStamp`) BETWEEN "2015-04-01" AND "2015-04-10";
返回431925
非常感谢任何见解。
答案 0 :(得分:0)
您的timestamp
中有一个时间组件,而您正在使用between
。这意味着'2015-04-10'
(午夜之后)发生的任何事情都会从第一个查询中过滤掉 - 时间组件将其置于范围之外。
第二个版本删除了时间组件。因此,这些匹配范围的上限。