我想在oracle sql中编写一个查询,它在一列中返回当天的每一分钟。但我不知道如何开始: - (
min
27.03.2014 00:00
27.03.2014 00:01
27.03.2014 00:02
...
27.03.2014 23:59
由于
答案 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