问题:查询 2011-01-06 到 2011-01-08这几天中 9:00到15:30的数据。(如果天的跨度是随机的,如隔10天,20天,SQL如何写最优?)
create table T_DATE_QUERY
(
ID NUMBER,
NAME varCHAR2(6),
START_DATE DATE,
CNT NUMBER
);
--从2012-01-05 00:00:00开始,每隔30分钟生成一条数据。
declare
i number;
j number;
begin
for i in 1 .. 5 loop
for j in 1 .. 48 loop
insert into t_date_query
select i,'00'||i, (to_date('2012-01-05 00:00:00','YYYY-MM-DD HH24:MI:SS')+(i-0))-(j*30)/(24*60),trunc(j*dbms_random.value(10,20)) from dual;
end loop;
commit;
end loop;
end;
/
select * from t_date_query order by start_date;
笨办法实现:查询 2011-01-06 到 2011-01-08这几天中 9:00到15:30的数据。(如果时间跨的浮度很大则不好扩展,代码冗余)
select a.*
from t_date_qu