Sök…


Datum aritmetik

Oracle stöder DATE (inkluderar tid till närmaste sekund) och TIMESTAMP (inkluderar tid till bråkdelar av en sekund) datatyper, som tillåter aritmetik (tillägg och subtraktion) nativt. Till exempel:

För att få nästa dag:

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

För att få föregående dag:

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

Så här lägger du till fem dagar till det aktuella datumet:

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

Så här lägger du till 5 timmar till det aktuella datumet:

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

Så här lägger du till 10 minuter till det aktuella datumet:

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

Så här lägger du till 7 sekunder till det aktuella datumet:

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

hire_date väljer du rader där hire_date är 30 dagar sedan eller mer:

select * from emp where hire_date < sysdate - 30;

last_updated väljer du rader där den last_updated kolumnen är den senaste timmen:

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

Oracle tillhandahåller också den inbyggda datatypen INTERVAL som representerar en tidsperiod (t.ex. 1,5 dagar, 36 timmar, 2 månader osv.). Dessa kan också användas med aritmetik med DATE och TIMESTAMP uttryck. Till exempel:

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

Add_months-funktion

Syntax: add_months(p_date, integer) return date;

Funktionen Add_months lägger till månader till datumet för datumet.

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

Du kan också subtrahera månader med en negativ amt

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

När den beräknade månaden har färre dagar som det givna datumet kommer den sista dagen i den beräknade månaden att returneras.

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow