2015-08-28 10 views
9

Voglio aggiungere 10 secondi a current_timestamp nel mio script PL/SQL. Ho provato sotto il codice, ma l'output non è in formato timestamp.Come aggiungere 10 secondi in current_timestamp SQL (Oracle)

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

uscita:

CURRENT_TIMESTAMP+1/24/60/6 

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

C'è qualche funzione simile a TIMESTAMPADD nel server MySQL?

+0

Il codice dovrebbe funzionare, quindi il tuo strumento sta probabilmente troncando la parte relativa al tempo del risultato. Scriverò la logica come '(10/(24 * 60 * 60))'. Penso che ciò renda l'intenzione più ovvia. –

risposta

19

In Oracle, se si vuole un timestamp come il risultato, piuttosto che un date (un date include sempre il tempo per il secondo, però, così si può fare, un date), che ci si vuole aggiungere un interval allo timestamp. Ci sono vari modi per costruire un interval-- è possibile utilizzare un intervallo letterale

select current_timestamp + interval '10' second 
    from dual 

oppure è possibile utilizzare la funzione numtodsinterval

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

Grazie, Justin. Ha funzionato. –

0

Esso può essere realizzato utilizzando 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; 

OUTPUT:

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