sql如何按时间段来查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql如何按时间段来查询相关的知识,希望对你有一定的参考价值。

如题,数据库有一个表ms_cf01,有一个字段kfrq,这个字段是datetime类型,格式2012-01-01 01:01:01,想做以下查询:
查询这个字段的某个小时段内记录,比如2010年1月1号到2010年12月31号这段时间内晚上18:00--24:00的记录。怎么写语句呢?数据库为oracle 10g。

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个字段 日期 ,时间,并用整形表示
参考技术A 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 --限定时间
参考技术B select * from ms_cf01 where datepart(yy,kfrq)=2010 and datePart(hh,kfrq)>=18 and datepart(hh,kfrq)<=24 参考技术C between

oracle如何按时间格式查询

在plsql中,我有一个字段为date型,格式为:2009-11-5 下午 02:00:49,
现在我想查询时间大于2009-11-5 下午 02:00:49的数据,应该怎么写?

1、打开常用PLSQL Developer工具,输入登录信息。如图所示:

2、完成以上操作后,要在工具中新建SQL窗口,如图:

3、打开新建SQL的窗口,打开是空白是正常情况。如图:

4、然后日期createdatetime,日期型字段类型如下:

5、输入如下语句,从表table123进行查询,如图所示:

6、点击查询按钮,进行查询操作,这样就可以查出2014年1月1日的查询记录数目

参考技术A select * from 表名 where date字段 > to_date('2009-11-05 14:00:49','YYYY-MM-DD HH24:MI:SS')

hh24:24小时制
hh:12小时制本回答被提问者采纳
参考技术B select * from table where field > to_date(2009-11-05 14:00:49,'yyyy-mm-dd hh24:mi:ss')
table 为表名 field字段名追问

你的时间没加引号

以上是关于sql如何按时间段来查询的主要内容,如果未能解决你的问题,请参考以下文章

如何创建 SQL 查询来计算按日期分组和连接的项目? [关闭]

如何在SQL中按时间段查询数据

如何在 SQL 中按时间顺序计算事件?

SQL中按日期进行查询,如何截取日期进行查询

sql如何按日期中的月份查询

sql查询按时间累计