sql--构造集合

我想查询 小时=8点的,在某一段时间内的纪录,在数据库中并不是每天都有数据,我现在想问如何实现“比如我想查询2002-6-15 到2002-8-1之间的的小时=8点的纪录,如果当天没有纪录,该天应该显示为空”,如何实现??
主要用到的字段
ymdhm date类型

DYRN number类型的

表名称:ST_RNFL_R
Oracle 8.1.7

谢谢

---------------------------------------------------------------

select * from ST_RNFL_R where (to_char(ymdhm,'yyyymmdd') between '20020615' and '20020801') and to_char(ymdhm,'hh24')=8
---------------------------------------------------------------

select a.ymdhm,b.DYRN from
(select to_date('2002-6-15','yyyy-mm-dd')+rownum - 1 ymdhm from all_objects,all_objects where rownum <= to_date('2002-8-1','yyyy-mm-dd') - to_date('2002-6-15','yyyy-mm-dd') + 1) a,
(select DYRN,trunc(ymdhm) ymdhm from ST_RNFL_R where ymdhm >= to_date('20020615','yyyymmdd') and ymdhm < to_date('20020801','yyyymmdd')+1 and to_char(ymdhm,'hh24')=8) b
where a.ymdhm = b.ymdhm(+);

sorry
我没有测试,先看出点这个问题,修正了一下
请你测试一下

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus