【摘要】有的时候,我们需要查询数据库某段时间之间的数据,比如2016年5月1号到到5月3号之间用户注册数量(特殊节假日期间)等。那么用SQL语句如何实现呢?
首先,数据表中的存时间的字段比如是addtime可能是时间戳(varchar),也可能是用timestamp类型表示,如果是时间戳格式当然好办,如果是timestamp格式:YYYY-MM-DD HH:II:SS这个格式,如2016-05-01 00:00:00这种格式的SQL语句怎么表示?有下面两张方式:
(1)第一种方法,使用关键字between...and...,SQL语句如下:
select 需要查询的字段名称 from 表名 where 字段名(表示时间的) between 时间1(如:'2016-5-1 00:00:00') and 时间2(例如:'2016-5-3 00:00:00')
例如下面:(查询2016年5月1号到3号user表中的name,age字段的数据)
select name,age from user where addtime between '2016-5-1 00:00:00' and '2016-5-3 00:00:00';
(2)第二种方法,使用比较运算符的方式,即大于号小于号这种方式:
select name,age from where addtime > '2015-5-1 00:00:00' and addtime < '2016-5-3 00:00:00'
可以试试,之前我也从来没有居然timestamp格式的时间也能用比较运算符查询,我的解决方案是添加一个字段,用时间戳来描述。现在知道可以用这种方式是不是很酷。