oracle 的跨天查询,实现跨天中固定时间区间的查询SQL

问题:查询 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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值