2015-08-28 26 views
9

Chcę dodać 10 sekund do current_timestamp w moim skrypcie PL/SQL. Próbowałem poniżej kodu, ale jego wyjście nie ma formatu timestamp.Jak dodać 10 sekund w current_timestamp SQL (Oracle)

SELECT CURRENT_TIMESTAMP+1/24/60/6 FROM dual; 

wyjściowa:

CURRENT_TIMESTAMP+1/24/60/6 

--------------------------- 
28-AUG-15 

Czy istnieje funkcja podobna do TIMESTAMPADD serwer MySQL?

+0

Kod powinien zadziałać, dlatego narzędzie prawdopodobnie skraca porcję wyniku. Napisałbym logikę jako '(10/(24 * 60 * 60))'. Myślę, że to czyni tę intencję bardziej oczywistą. –

Odpowiedz

19

W Oracle, jeśli chcesz timestamp w wyniku, zamiast date (a date zawsze obejmuje czas do drugiej, choć, więc może po prostu chcesz date), którą chcesz dodać interval do timestamp. Istnieją różne sposoby, aby skonstruować interval-- można użyć odstępu dosłownego

select current_timestamp + interval '10' second 
    from dual 

lub można użyć funkcji numtodsinterval

select current_timestamp + numToDSInterval(10, 'second') 
    from dual 
+0

Dziękuję Justin. Zadziałało. –

0

Można to osiągnąć za pomocą TO_CHAR

Select TO_CHAR(current_timestamp,'DD-MM-YY hh24:mi:SS') AS TIMESTAMP, 
TO_CHAR(current_timestamp+10/24/60/60,'DD-MM-YY hh24:mi:SS') AS TIMESTAMP_PLUS_10SEC 
from dual; 

WYJŚCIE:

TIMESTAMP   TIMESTAMP_PLUS_10SEC 
31-08-15 05:17:19  31-08-15 05:17:29