Datumsfunktionen

Oracle, sowie viele andere DB Systeme, speichern Datumsangaben in einem internen Format, in dem das Jahrhundert, das Jahr, der Monat, der Tag, die Stunde, sowie die Minuten und Sekunden abgelegt werden.

Das Standardformat für das Datum ist DD-MON-YY. Also Tag des Monats, die ersten drei Buchstaben des Monatsnamen und die letzten beiden Ziffern des Jahres.

Der gültige Datumsbereich bei Orackle ist vom 1.1.4712 v. Chr. bis zum 31.12.9999.

 

Format

Die im Folgenden als Format bezeichneten Stellen repräsentieren diese Abkürzungen:

YYYYJahr in Zahlen (vierstellig)
YYJahr zweistellig
MMMonat in Zahlen (zweistellig)
DDTag (zweistellig)
dayName des Tages klein ('sonntag')
DAYName des Tages groß ('Sonntag')
HH24Stunden 0-23
HH12Stunden 0-11
MIMinuten
IWKalenderwoche nach ISO
WWoche des Monats
MONMonatsname erste 3 Großbuchstaben
monMonatsname erste 3 Kleinbuchstaben
Month, MONTHMonatsname vollständig
QQuartal (1,2,3,4)
SSSekunden (0-60)
SSSSSSekunden des Tages seit Mitternacht

 

 

SYSDATE

Mit Hilfe dieser Funktion kann die aktuelle Systemzeit (Datum / Zeit) angezeigt werden. Dazu wird eine SELECT Anweisung auf der Tabelle dual ausgeführt.

SELECT sysdate FROM dual;

SYSDATE
01.01.2012

 

Tage hinzuzählen oder abziehen

Es können einzelne Tage zu einem Datum dazu, oder abgerechnet werden:

sysdate + 2 <= Rechnet zwei Tage zum aktuellen Datum
sysdate - 2 <= Zieht 2 Tage vom aktuellen Datum ab.

Beispiel:
Wenn das aktuelle Datum der 01.01.2012 ist.

SELECT sysdate+2 from dual;

SYSDATE+
03.01.2012

MONTHS_BETWEEN

Mit dieser Anweisung können die Monate zwischen zwei Datumsangaben berechnet werden. Ist das zweite angegebene Datum höher als das erste, wird die Zahl negativ ausgegeben. Ist das Datum an zweiter Stelle das ältere, dann wird es positiv ausgegeben.

Beispiel:
SELECT MONTHS_BETWEEN('01.01.2012','01.01.2000') from dual;

MONTHS_BETWEEN('01.01.2012','01.01.2000')
144

 

ADD_MONTHS

Mit dieser Funktion können Sie zu einem bestehenden Datum eine bestimmte Anzahl von Monaten hinzurechnen.

Beispiel:
SELECT ADD_MONTHS('01.01.2012',2);

ADD_MONTH
01.03.2012

 

NEXT_DAY

Diese Funktion liefert das nächste Datum, welches gleich dem angegebenen Wochentag ist. Als Wochentag kann eine Ziffer wie 1=Montag, 2=Dienstag, ... angegeben werden, oder der Wochentag selbst:
Montag, Dienstag ...

Beispiel:
SELECT NEXT_DAY('03.01.2012', 5) from dual;

NEXT_DAY
06.01.2012

SELECT NEXT_DAY('03.01.2012', 'Freitag') from dual;

NEXT_DAY
06.01.2012

 

LAST_DAY

LAST_DAY gibt den letzten Tag des Monats aus.

Beispiel:
SELECT LAST_DAY('01.02.1524') from dual;

LAST_DAY
29.02.24

 

ROUND

Diese Funktion rundet das Datum auf nächste Termine auf oder ab, je nachdem, welches Format eingefügt wird:

Beispiel:
SELECT ROUND(to_date('10.02.2012'),'month') from dual;

ROUND(TO
01.02.2012

 

TRUNC

Diese Funktion gibt den jeweiligen Anfang des Formatwerts an. Für YYYY den Anfang des Jahres, für month den Anfang des Monats, ...

Beispiel:
SELECT TRUNC(to_date('12.02.2012'), 'YYYY') from dual;

TRUNC(TO
01.01.2012