什么是MYSQL DATE()函数对我的`timeStamp`值做什么?

时间:2015-04-12 02:50:04

标签: mysql

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

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

您的timestamp中有一个时间组件,而您正在使用between。这意味着'2015-04-10'(午夜之后)发生的任何事情都会从第一个查询中过滤掉 - 时间组件将其置于范围之外。

第二个版本删除了时间组件。因此,这些匹配范围的上限。