Ricerca…


Data Aritmetica

Oracle supporta i tipi di dati DATE (include il tempo per il secondo più prossimo) e TIMESTAMP (include il tempo per le frazioni di un secondo), che consentono l'aritmetica (addizione e sottrazione) in modo nativo. Per esempio:

Per ottenere il giorno successivo:

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

Per ottenere il giorno precedente:

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

Per aggiungere 5 giorni alla data corrente:

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

Per aggiungere 5 ore alla data corrente:

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

Per aggiungere 10 minuti alla data corrente:

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

Per aggiungere 7 secondi alla data corrente:

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

Per selezionare le righe in cui hire_date sono hire_date 30 giorni o più:

select * from emp where hire_date < sysdate - 30;

Per selezionare le righe in cui la colonna last_updated trova nell'ultima ora:

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

Oracle fornisce anche il tipo di dati INTERVAL incorporato che rappresenta un periodo di tempo (ad es. 1,5 giorni, 36 ore, 2 mesi, ecc.). Questi possono anche essere usati con l'aritmetica con le espressioni DATE e TIMESTAMP . Per esempio:

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

Funzione Add_months

Sintassi: add_months(p_date, integer) return date;

La funzione Add_months aggiunge amt mesi alla data p_date.

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

Puoi anche sottrarre mesi usando un amt negativo

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

Quando il mese calcolato ha meno giorni della data indicata, verrà restituito l'ultimo giorno del mese calcolato.

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow