2014-12-22 3 views
0

이전 10 초로 날짜 시간을 나열하려고합니다. 이전 10 초 가져 오기

나는이

SELECT (SYSDATE -LEVEL + 1) each_day 
    FROM DUAL 
CONNECT BY LEVEL <= 10 

과 노력하지만 이전 10 일 얻는다.

이전 10 초를 얻을 수 있습니까?

답변

4

이 10 초 이전받을 수 있습니까? 당신이 INTERVAL 데이터 형식의 사용에 열려 있으면

SELECT (SYSDATE + (1-LEVEL)/24/3600) each_sec 
--      ^^^^^^^ 
--     including the 'current' sysdate 
--     (as LEVEL start at 1) 
    FROM DUAL 
CONNECT BY LEVEL <= 10 

, 당신은 어떻게 든 더 자기 문서화 그대로 NUMTODSINTERVAL을 사용하여 선호 할 수도 :

당신은 거의 그것을 가지고

SELECT SYSDATE + NUMTODSINTERVAL(1-LEVEL, 'SECOND') each_sec 
    FROM DUAL 
CONNECT BY LEVEL <= 10 
+0

감사합니다. 그것은 일했다 :) – Shanna

+1

'NUMTODSINTERVAL'는 유용한 추가이다. +1 –

2

SYSDATE에서 서브 클래스 화는 일 단위이므로, - 1은 마이너스 1 일입니다. 초에 그 변환하려면, 사용

select (sysdate - (level/24 /*hours*//3600 /*seconds*/)) each_second 
from dual 
connect 
by  level <= 10 
+0

감사합니다. 그러나 이것은 이전 날짜에도 10 초 앞당겨줍니다. 10 개의 레코드 모두에 현재 날짜가 필요하며 각 레코드에는 1 초가 필요합니다. Like 22/12/2014 09:34:45 ... 22/12/2014 09:34:44 ... 22/12/2014 09:34:43 – Shanna

+1

@Shanna 쿼리에서'level'을 놓쳤습니다. 내 나쁜. –

+1

@Shanna : 결정을 내리십시오. 이 대답 중 하나를 선택하십시오 ... 내 화면에 깜박이는 표시가 싫어요. –