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 * from 表名 where BreakTime between Ctime(开始时间)and Ctime(结束时间)

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

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)也可以直接用>=和<=来查询,比如:select * from table where 时间>='2011-1-1' and 时间<'2011-2-1'或者select * from table where 时间 between '2011-1-1' and '2011-2-1'

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

select count(ID), convert(VARCHAR(10),[date],120) from T group by convert(VARCHAR(10),[date],120)

--一天内:select * from tbl where convert(varchar(10),posttime,120) = '2010-04-03'--一周内:select * from tbl where datedepart(dw,posttime) = datedepart(dw,'2010-04-03')--一月内select * from tbl where convert(varchar(7),posttime,120) = '2010-04'

sql按日期中的月份查询如下: SQL Server select * from [data] where DATEPART(m,[date])=2 Access select * from [data] where DATEPART('m',[date])=2 说明: DATEPART(datepart,date) 返回表示指定日期的指定部分的整数 datepart 要取得的日

select datediff(HH,A表时间,B表时间) where 条件(例如:A表ID=B表ID) 返回的是小时数 HH相隔小时数,MI相隔分钟数,MM相隔月数 select datediff(DD,a.时间,b.时间) from A表 a,B表 b where a.ID=b.ID 或 select datediff(DD,a.时间,b.时间) from A表 a inner join B表 b on a.ID=b.ID

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