Oracle每天每分钟查询一次

时间:2014-03-27 07:11:30

标签: sql oracle date-arithmetic

我想在oracle sql中编写一个查询,它在一列中返回当天的每一分钟。但我不知道如何开始: - (

min
27.03.2014 00:00
27.03.2014 00:01
27.03.2014 00:02
...
27.03.2014 23:59

由于

3 个答案:

答案 0 :(得分:3)

我们可以使用算术来操作日期,使用简单的CONNECT BY技巧来生成行流。

alter session set nls_date_format='dd-mon-yyyy hh24:mi'
/

with cte as ( select trunc(sysdate) as start_date from dual )
select start_date + ((level-1)/(24*60)) as date_w_mins
from cte
connect by level <= (24*60)
/

答案 1 :(得分:2)

您可以使用numtodsinterval功能,也很简单:

SELECT to_char(TRUNC(sysdate)+ 
               numtodsinterval (level-1,'minute'),'dd.mm.yyyy hh24:mi') min
FROM dual
CONNECT BY LEVEL <= (24*60);

答案 2 :(得分:0)

SELECT date + minute FROM
(
SELECT TO_DATE('yyyy.mm.dd', '2014.03.27') date FROM DUAL
CROSS JOIN
( 
SELECT 0 minute FROM DUAL
UNION ALL
SELECT rownum r
FROM DUAL
CONNECT BY rownum <= 1439
) T
) TT