问题描述
我有两个SQL查询:
SQL查询1:
SQL查询2:
我的问题是: 我不知道要结合上面的查询得到这样的输出:
意味着每个参数日期将重复24次 (小时)
希望我的问题能尽快得到回答。谢谢。
SQL查询1:
select to_date(:sDate,'dd-mm-rrrr')+(level-1)DateRange from dual connect by level <= ((to_date(:endDate,'dd-mm-rrrr')-to_date(:sDate,'dd-mm-rrrr')) + 1);
SQL查询2:
select level,to_char(trunc(sysdate) + (level-1)/24, 'YYYY-MM-DD HH24:MI') AS SysDater,to_char(trunc(sysdate) + (level-1)/24, 'HH24:MI') AS SysHour from dual connect by level <= 24;
我的问题是: 我不知道要结合上面的查询得到这样的输出:
Date HRS(24) ----- ------- 1/1/2019 01:00 1/1/2019 02:00 1/1/2019 03:00 . . . . 1/1/2019 24:00 1/2/2019 01:00 1/2/2019 02:00 . . 1/2/2019 24:00 1/3/2019 01:00 1/3/2019 02:00 1/3/2019 03:00 . . . . 1/3/2019 24:00
意味着每个参数日期将重复24次 (小时)
希望我的问题能尽快得到回答。谢谢。
专家解答
所以你想生成两个日期之间的所有日期时间?
你只需要一个查询!
只需将日期之间的差异乘以24即可。然后为每行添加一个小时 (1/24):
你只需要一个查询!
只需将日期之间的差异乘以24即可。然后为每行添加一个小时 (1/24):
var sDate varchar2(10);
var endDate varchar2(10);
exec :sDate := '01-01-2019';
exec :endDate := '03-01-2019';
select to_date ( :sDate,'dd-mm-yyyy' ) +
( level / 24 ) dt
from dual
connect by level <= ( 24 + ( 24 *
( to_date(:endDate,'dd-mm-yyyy') -
to_date(:sDate,'dd-mm-yyyy') )
)
) ;
DT
01-JAN-2019 01:00:00
01-JAN-2019 02:00:00
01-JAN-2019 03:00:00
...
03-JAN-2019 22:00:00
03-JAN-2019 23:00:00
04-JAN-2019 00:00:00
72 rows selected. 文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




