sql如何按时间段来查询

如题,数据库有一个表ms_cf01,有一个字段kfrq,这个字段是datetime类型,格式2012-01-0101:01:01,想做以下查询:查询这个字段的某个小时段内... 如题,数据库有一个表ms_cf01,有一个字段kfrq,这个字段是datetime类型,格式2012-01-01 01:01:01,想做以下查询:
查询这个字段的某个小时段内记录,比如2010年1月1号到2010年12月31号这段时间内晚上18:00--24:00的记录。怎么写语句呢?数据库为oracle 10g。
展开
 我来答
tianhxk
2012-03-21 · TA获得超过422个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:279万
展开全部
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个字段 日期 ,时间,并用整形表示
百度网友61f144c3
2012-03-21 · TA获得超过4145个赞
知道小有建树答主
回答量:1224
采纳率:71%
帮助的人:376万
展开全部
select * from ms_cf01
where to_number(to_char(kfrq,'yyyymmdd')) between 20100101 and 20121231 --限定日野正中期颂山清兆
and to_number(to_char(kfrq,'hh24miss')) between 180000 and 235959 --限定时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WHITE_WIN
2012-03-21 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1907万
展开全部
select * from ms_cf01 where datepart(yy,kfrq)=2010 and datePart(hh,kfrq)>码行斗迟磨带肆=18 and datepart(hh,kfrq)<=24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GreatnessCat
2012-03-21
知道答主
回答量:5
采纳率:0%
帮助的人:8079
展开全部
between
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式