日期:2014-05-16  浏览次数:20929 次

oracle查询间隔时间的记录
数据库记录是这样子的
数据库每天都会插入24条记录(每隔一小时一条)
2011-08-27 15:03
2011-08-27 16:03
2011-08-27 17:03
2011-08-27 18:03

2011-08-28 15:03
2011-08-28 16:03
2011-08-28 17:03
2011-08-28 18:03


我需要查询出过去10天的 所有6点钟的记录 该怎么写sql语句呢,请sql高手帮忙下

------解决方案--------------------
SELECT * FROM table WHERE to_char(日期,'hh24miss')='180000' and to_char(日期,'yyyymmdd') between to_char(sysdate-10,'yyyymmdd') 
and to_char(sysdate,'yyyymmdd'); 

写的一般,但是大概是这个意思,呵呵~~
------解决方案--------------------
探讨

SELECT * FROM table WHERE to_char(日期,'hh24miss')='180000' and to_char(日期,'yyyymmdd') between to_char(sysdate-10,'yyyymmdd')
and to_char(sysdate,'yyyymmdd');

写的一般,但是大概是这个意思,呵呵~~

------解决方案--------------------
用WHERE EXTRACT(HOUR FROM 时间字段)=6 或者楼上的TO_CHAR()感觉EXTRACT效率高点,而且返回是类型是整型,

顺便问下:所有6点钟的记录?下午》?从表达上来说是上午