MySQL-使用日期范围vs函数
我需要知道在6月和7月注册了多少用户,这是我写的第一个查询:MySQL-使用日期范围vs函数,mysql,date,date-range,Mysql,Date,Date Range,我需要知道在6月和7月注册了多少用户,这是我写的第一个查询: select count(*) from users where created_at>="2013-06-01" and created_at<="2013-07-31" 结果:16278 为什么它们返回不同的结果?有人能解释一下吗?还是我遗漏了什么 谢谢。两个查询应该是等价的,除了第一个查询能够使用索引,而且应该更快,而且在处创建的不是日期而是时间戳 如果在处创建的是一个时间戳,则应按以下方式编写第一个查询: sel
select count(*) from users where created_at>="2013-06-01" and created_at<="2013-07-31"
结果:16278
为什么它们返回不同的结果?有人能解释一下吗?还是我遗漏了什么
谢谢。两个查询应该是等价的,除了第一个查询能够使用索引,而且应该更快,而且在处创建的
不是日期而是时间戳
如果在
处创建的是一个时间戳,则应按以下方式编写第一个查询:
select count(*) from users
where created_at>='2013-06-01' and created_at<'2013-08-01'
从用户中选择计数(*)
当created_at>='2013-06-01'和created_at时,这两个查询应该是等价的,除了第一个查询能够使用索引并且应该更快,并且除了在
处创建的不是日期而是时间戳
如果在
处创建的是一个时间戳,则应按以下方式编写第一个查询:
select count(*) from users
where created_at>='2013-06-01' and created_at<'2013-08-01'
从用户中选择计数(*)
如果在>='2013-06-01'创建,而在创建,原因是日期值不包括最后一天:日期常量在午夜转换为时间戳。您正在这些值之间进行查询:
2013-06-01 00:00:00
2013-07-31 00:00:00
所以只包括最后一天的第一秒
试试这个:
select count(*)
from users
where created_at>="2013-06-01"
and created_at<="2013-07-31 23:59:59"
选择计数(*)
来自用户
创建地点>=“2013-06-01”
并创建了_at=“2013-06-01”
原因是日期值不包括最后一天:日期常量在午夜转换为时间戳。您正在这些值之间进行查询:
2013-06-01 00:00:00
2013-07-31 00:00:00
所以只包括最后一天的第一秒
试试这个:
select count(*)
from users
where created_at>="2013-06-01"
and created_at<="2013-07-31 23:59:59"
选择计数(*)
来自用户
创建地点>=“2013-06-01”
并创建了_at=“2013-06-01”
和created_at created_at列的类型是什么?如果恰好是基于字符的列而不是日期列,则可能无法按预期进行比较。在列中创建的_的类型是什么?如果它恰好是一个基于字符的列,而不是一个日期列,则可能无法按预期进行比较。