十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、当时间条件字段为字符串类型的时候,通过以下方法查询数据:
目前创新互联公司已为上1000+的企业提供了网站建设、域名、虚拟主机、网站托管运营、企业网站设计、海晏网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
1.1、SELECT * FROM 表名 t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd')
between to_date('2017/8/1','yyyy/MM/dd') and to_date('2017/11/1','yyyy/MM/dd');
1.2、SELECT * FROM zsd018a t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd hh24:mi:ss')
between to_date('2017/8/1','yyyy/MM/dd hh24:mi:ss') and to_date('2017/11/1','yyyy/MM/dd hh24:mi:ss');
2、当时间条件为date类型的时候,通过以下方法查询数据:
select * from zmm028 where to_char(tkdat,'YYYY-MM-DD')='2017-10-01'
and to_char(tkdat,'YYYY-MM-DD')='2017-11-02' ;
range分区可以直接通过filter分区键查询,oracle会根据执行计划自动优化sql
oracle 查询日期区间内的数据一般最常用的就是between and 和=,=(或者不要等号)了;
举例:select * from tablename t where t.日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')
或者:
select * from tablename where t.日期列 = to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss') and t.日期列 = to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')
如果要查询开区间的数据只需将= 和=改为和就行。
where 1=1 and
IN_AVG_VALUE BETWEEN '30' AND '50'
or
IN_MAX_VALUE BETWEEN '30' AND '50'
or
IN_MIN_VALUE BETWEEN '30' AND '50'
你好,可以使用oracle的to_char( )函数将时间转化为字符串,然后再进行查询,sql如下:
select * from table where to_char(time,'yyyy')='2016' and to_char(time,'hh:mm:ss')'16:00:00'