Suche…


Datums-Arithmetik

Oracle unterstützt die Datentypen DATE (enthält die Zeit bis zur nächsten Sekunde) und TIMESTAMP (enthält die Zeit bis zum Bruchteil einer Sekunde), wodurch die Arithmetik (Addition und Subtraktion) nativ möglich ist. Zum Beispiel:

Um den nächsten Tag zu bekommen:

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

Um den Vortag zu erhalten:

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

So fügen Sie dem aktuellen Datum 5 Tage hinzu:

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

So fügen Sie dem aktuellen Datum 5 Stunden hinzu:

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

So fügen Sie 10 Minuten zum aktuellen Datum hinzu:

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

So fügen Sie dem aktuellen Datum 7 Sekunden hinzu:

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

So wählen Sie Zeilen aus, für die hire_date vor 30 Tagen oder mehr liegt:

select * from emp where hire_date < sysdate - 30;

So wählen Sie Zeilen aus, in last_updated Spalte last_updated in der letzten Stunde befindet:

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

Oracle bietet auch den integrierten Datentyp INTERVAL der eine Zeitdauer darstellt (z. B. 1,5 Tage, 36 Stunden, 2 Monate usw.). Diese können auch mit Arithmetik mit verwendet werden DATE und TIMESTAMP Ausdrücke. Zum Beispiel:

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

Add_months-Funktion

Syntax: add_months(p_date, integer) return date;

Add_months-Funktion fügt dem Datum von p_date einen Monat hinzu.

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

Sie können auch subtrahieren Monate mit einem negativen amt

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

Wenn der berechnete Monat weniger Tage als das angegebene Datum hat, wird der letzte Tag des berechneten Monats zurückgegeben.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow