knrt.net
当前位置:首页 >> sql如何按时间段来查询 >>

sql如何按时间段来查询

select * from ms_cf01 a where a.kfrq between to_date('20100101 180000','yyyymmdd hh24miss') and to_date('20101231 180000','yyyymmdd hh24miss') and to_char(a.kfrq,'hh24miss') between '180000' and '240000' 主要用到 to_char,to_date对时间字段的转换方法,具体使用方法可baidu 如果这么查询,主要是第2个条件无法用上索引,所以最好的方式是在涉及表的时候将该字段拆成2个字段 日期 ,时间,并用整形表示

用时间来查询是什么意思查询时间是select getdate()查询 表内时间再 时间段之内select * from tablename where 时间 between 时间段1 and 时间段2或者 按你的需要 用datediff 等函数 看你具体的需求了

select * from 表名 where BreakTime between Ctime(开始时间)and Ctime(结束时间)

select * from 表 where 日期字段>='开始日期' and 日期字段and convert(char(8),日期字段,108)>='开始时间' and convert(char(8),日期字段,108)例如:select * from tb1 where ddate>='2010-11-05' and ddateand convert(char(8),ddate,108)>='22:30:00' and convert(char(8),ddate,108)

用between有个问题就是最后一天查询不到,也就是他的范围是[2011-1-1, 2011-2-1)也可以直接用>=和='2011-1-1' and 时间

如果你的时间段是均匀的,比如一天24小时内,每4个小时为一个周期,那么可以这么写select coutn(ID) from T group by trunc (to_char(time,'hh24') / 4)--to_char(time,'hh24')是取出小时部分,trunc是求商,把小时部分除以4,则每4个小时内的都会在一起如果时间段不均匀,那么只能每个时间段单独写了示例select count(ID) from T where to_char(time,'hh24')<结束时间 and to_char(time,'hh24') >=开始时间

SQL时间段查询 ACCESS的话 select * from table where date1<#2008-1-20# and date2>#2007-8-30#MYSQL的话 select * from table where date1<'2008-1-20' and date2>'2007-3-30' 也可以 select * from table where date1 between '2008-1-20' and '2007-3-30'其中date1,date2都是日期类型的字段

具体什么问题? 只是按时间字段查询的话可以这样 select * from table1 where dt >= '2012/12/31'

select * from a where ondate between '日期1' and '日期2'

select * form 表 where posttime between 时间1 and 时间2

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com