web-dev-qa-db-fra.com

Oracle soustrayant jours et minutes

Je veux soustraire "X" jours et "X" minutes de sysdate, où les jours et les minutes sont un entier comme paramètre d'entrée. Par exemple, 1 jours et 5 minutes.

J'ai trouvé de nombreux exemples pour soustraire des minutes ou des heures mais pas une combinaison de jours et de minutes.

select sysdate - 5 / 24 / 60 from dual -- will retrieve sysdate minus 5 minutes. 
--What about the days?

Je vous remercie!

6
Carlos

Utilisez un littéral d'intervalle :

SELECT SYSDATE - INTERVAL '10 00:05' DAY(2) TO MINUTE
FROM   DUAL

Ou:

SELECT SYSDATE - INTERVAL '10' DAY - INTERVAL '5' MINUTE
FROM   DUAL

Ou utilisez simplement l'arithmétique:

SELECT SYSDATE - 10 /* Days */ - 5 / 24 /60 /* Minutes */
FROM   DUAL

Ou utilisez NUMTODSINTERVAL :

SELECT SYSDATE - NUMTODSINTERVAL( 10, 'DAY' ) - NUMTODSINTERVAL( 5, 'MINUTE' )
FROM   DUAL
15
MT0

Vous pouvez utiliser Intervalle jour en minute - http://docs.Oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#i38598

select sysdate - interval '1 00:05' day to minute from dual
1
Gurwinder Singh