web-dev-qa-db-fra.com

Comment ajouter 10 secondes dans current_timestamp SQL (Oracle)

Je veux ajouter 10 secondes à current_timestamp dans mon script PL/SQL. J'ai essayé le code ci-dessous mais sa sortie n'est pas au format d'horodatage.

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

Sortie:

CURRENT_TIMESTAMP+1/24/60/6

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

Existe-t-il une fonction similaire à TIMESTAMPADD dans le serveur Mysql?

13
Nagendra Yadav

Dans Oracle, si vous voulez un timestamp comme résultat, plutôt qu'un date (un date inclut toujours l'heure à la seconde, cependant, vous pouvez donc simplement vouloir un date), vous souhaitez ajouter un interval au timestamp. Il existe différentes façons de construire un intervalle - vous pouvez utiliser un littéral d'intervalle

select current_timestamp + interval '10' second
  from dual

ou vous pouvez utiliser la fonction numtodsinterval

select current_timestamp + numToDSInterval( 10, 'second' )
  from dual
28
Justin Cave

Cela peut être réalisé en utilisant 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;

SORTIE:

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