跪求一个oracle时间区间查询的存储过程,具体如下?

lishijie910123 2013-01-15 10:49:28
oracle库中有一个表,该表包含3个字段频率、时间、值,结果如下
DATETYPE RATEDATE THISVALUE
1 2013-01-12 12:00:00 1100.00
1 2013-01-12 13:00:00 1200.00
1 2013-01-12 14:00:00 1300.00
1 2013-01-12 15:00:00 1400.00
4 2012-05-12 12:00:00 2000.00
4 2012-06-12 12:00:00 2000.00
DATETYPE是频率字段,字段说明如下:1小时、2日、3月、4季度、5年份,现在的要求是传入3个参数,一个是频率,一个是开始时间,一个是结束时间,比如3个参数分别为1,2013-01-12 12:00:00,2013-01-12 16:00:00,频率参数为1,就是要按小时点来查询,表示12点到16点之间有5个时间点,分别是2013-01-12 12:00:00、2013-01-12 13:00:00、2013-01-13 14:00:00、2013-01-12 15:00:00和2013-01-12 16:00:00,需要把这个5个时间点去和数据库的RATEDATE字段做比较,查询出对应的数据来;其他的按日、月、季度和年份查询同理,请大虾们帮忙下一个存储过程!
...全文
625 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishijie910123 2013-01-15
  • 打赏
  • 举报
回复
引用 1 楼 lovezxb0312 的回复:
create or replace procedure sp_query_thisvalue( query_type in number, start_time in date, end_time in date, cur_result out sys_refcursor ) is begin op……
兄弟,你还没有理解我的意思,我不是直接查两个时间区间的数据,而是计算出两个时间区间的数据点,用这个每个时间点去和数据库的时间字段对应。
lovezxb0312 2013-01-15
  • 打赏
  • 举报
回复
create or replace procedure sp_query_thisvalue( query_type in number, start_time in date, end_time in date, cur_result out sys_refcursor ) is begin open cur_result for select ratedate, thisvalue from tb_test where datetype=query_type and ratedate>=start_time and ratedate<=end_time; end sp_query_thisvalue;
lovezxb0312 2013-01-15
  • 打赏
  • 举报
回复
你的频率问题说明的不是很清楚,如果是天呢,我怎么生成时间天;输入开始时间:2013-01-13 结束时间2013-01-14是不是时间点就是2013-01-13 00:00:00 和2013-01-14 00:00:00?月,季度?时间点是怎么生成说明一下
crazy_samba 2013-01-15
  • 打赏
  • 举报
回复
首先根据输入参数拼接相应的SQL语句字符串v_exec_str,然后执行: OPEN cur_result FOR v_exec_str;

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧