Recherche…


Date arithmétique

Oracle supporte DATE (inclut le temps à la seconde près) et TIMESTAMP (inclut le temps à la fraction de seconde) des types de données, qui permettent l'arithmétique (addition et soustraction) de manière native. Par exemple:

Pour obtenir le lendemain:

select to_char(sysdate + 1, 'YYYY-MM-DD') as tomorrow from dual;

Pour obtenir la veille:

select to_char(sysdate - 1, 'YYYY-MM-DD') as yesterday from dual;

Pour ajouter 5 jours à la date actuelle:

select to_char(sysdate + 5, 'YYYY-MM-DD') as five_days_from_now from dual;

Pour ajouter 5 heures à la date actuelle:

select to_char(sysdate + (5/24), 'YYYY-MM-DD HH24:MI:SS') as five_hours_from_now from dual;

Pour ajouter 10 minutes à la date actuelle:

select to_char(sysdate + (10/1440), 'YYYY-MM-DD HH24:MI:SS') as ten_mintues_from_now from dual;

Pour ajouter 7 secondes à la date actuelle:

select to_char(sysdate + (7/86400), 'YYYY-MM-DD HH24:MI:SS') as seven_seconds_from_now from dual;

Pour sélectionner des lignes dont la date de hire_date est il y a 30 jours ou plus:

select * from emp where hire_date < sysdate - 30;

Pour sélectionner des lignes où la colonne last_updated est à la dernière heure:

select * from logfile where last_updated >= sysdate - (1/24);

Oracle fournit également le type de données intégré INTERVAL qui représente une durée (par exemple, 1,5 jour, 36 heures, 2 mois, etc.). Celles-ci peuvent également être utilisées avec l'arithmétique avec les expressions DATE et TIMESTAMP . Par exemple:

select * from logfile where last_updated >= sysdate - interval '1' hour;

Fonction add_months

Syntaxe: add_months(p_date, integer) return date;

La fonction Add_months ajoute des mois à la date p_date.

SELECT add_months(date'2015-01-12', 2) m FROM dual;
M
2015-03-12

Vous pouvez également soustraire des mois en utilisant un amt négatif

SELECT add_months(date'2015-01-12', -2) m FROM dual;
M
2014-11-12

Lorsque le mois calculé a moins de jours que la date indiquée, le dernier jour du mois calculé sera renvoyé.

SELECT to_char( add_months(date'2015-01-31', 1),'YYYY-MM-DD') m FROM dual;
M
2015-02-28


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow