Tutorial für Oracle DBA
On Januar 1, 2022 by adminDatumsfunktionen und Operatoren.
Um das Systemdatum und die Uhrzeit zu sehen, verwenden Sie die folgenden Funktionen:
CURRENT_DATE :gibt das aktuelle Datum in der Zeitzone der Sitzung zurück, in einem Wert im Gregorianischen Kalender vom Datentyp
DATE
SYSDATE :gibt das aktuelle Datum und die Uhrzeit zurück.
SYSTIMESTAMP :Die Funktion SYSTIMESTAMP gibt das Systemdatum zurück, einschließlich Sekundenbruchteile und Zeitzone
der Datenbank. Der Rückgabetyp ist TIMESTAMP WITH TIME ZONE.
SYSDATE Beispiel
Um das aktuelle Systemdatum und die Uhrzeit zu sehen, geben Sie die folgende Abfrage ein.
select sysdate from dual;
SYSDATE
——-
8-AUG-03
Das Format, in dem das Datum angezeigt wird, hängt vom Parameter NLS_DATE_FORMAT ab.
Setzen Sie zum Beispiel den NLS_DATE_FORMAT auf das folgende Format
alter session set NLS_DATE_FORMAT=’DD-MON-YYYY HH:MIpm‘;
Dann geben Sie die folgende Anweisung
select sysdate from dual;
SYSDATE
——————
8-AUG-2003 03:05pm
Die Standardeinstellung von NLS_DATE_FORMAT ist DD-MON-YY
CURRENT_DATE Beispiel
Um das aktuelle Systemdatum und die Uhrzeit mit Zeitzone zu sehen, verwenden Sie die Funktion CURRENT_DATE
ALTER SESSION SET TIME_ZONE = ‚-4:0‘;
ALTER SESSION SET NLS_DATE_FORMAT = ‚DD-MON-YYYY HH24:MI:SS‘;
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;
SESSIONTIMEZONE CURRENT_DATE
————— ——————–
-04:00 22-APR-2003 14:15:03
ALTER SESSION SET TIME_ZONE = ‚-7:0‘;
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;
SESSIONTIMEZONE CURRENT_DATE
————— ——————–
-07:00 22-APR-2003 09:15:33
SYSTIMESTAMP Beispiel
Um das aktuelle Systemdatum und die Uhrzeit mit Sekundenbruchteilen mit Zeitzone zu sehen, geben Sie folgende Anweisung ein
select systimestamp from dual;
SYSTIMESTAMP
——————————-
22-APR-03 08.38.55.538741 AM -07:00
DATUMSFORMATMODELLE
Um das Datum in ein anderes Format zu übersetzen, können Sie die Funktion TO_CHAR mit Datumsformat verwenden. Um zum Beispiel den aktuellen Tag zu sehen, können Sie folgende Abfrage eingeben
Select to_char(sysdate,’DAY‘) „Today“ FROM DUAL;
TODAY
——-
THURSDAY
Um einen Zeichenwert, der in einem anderen Format als dem Standard-Datumsformat vorliegt, in einen Datumswert zu übersetzen, können Sie die Funktion TO_DATE mit Datumsformat zu Datum verwenden
Nach diesem „DAY“-Formatmodell gibt es viele andere Datumsformatmodelle in Oracle. In der folgenden Tabelle sind die Datumsformatmodelle aufgeführt.
FORMAT |
Bedeutung |
D |
Tag der Woche |
DD |
Tag des Monats |
DD |
Tag des Jahres |
TAG |
Voller Tag für z.B.. ‚Montag‘, ‚Dienstag‘, ‚Mittwoch‘ |
DY |
Tag in drei Buchstaben für z.B.. ‚MON‘, ‚TUE‘,’FRI‘ |
W |
Woche des Monats |
WWW |
Woche des Jahres |
MM |
Monat in zwei Ziffern (1-Jan, 2-Feb,…12-Dez) |
MON |
Monat in drei Zeichen wie „Jan“, „Feb“, „Apr“ |
MONAT |
Ganzer Monat wie „Januar“, „Februar“, „April“ |
RM |
Monat in römischen Schriftzeichen (I-XII, I-Jan, II-Feb,…XII-Dez) |
Q |
Viertel des Monats |
JJ |
Letzte zwei Ziffern des Jahres. |
JJJJ |
Volles Jahr |
Jahr |
Jahr in Worten wie „Neunzehn Neunzig Neunzig“ |
HH |
Stunden im 12-Stunden-Format |
HH12 |
Stunden im 12-Stunden-Format |
HHH24 |
Stunden im 24-Stunden-Format |
MI |
Minuten |
SS |
Sekunden |
FF |
Fraktionale Sekunden |
SSSSS |
Millisekunden |
J |
Julian Day i.e Tage seit dem 1. Januar 4712 v. Chr. bis zum heutigen Tag |
RR |
Wenn das Jahr weniger als 50 beträgt, wird das Jahr als 21. Wenn das Jahr größer als 50 ist, wird das Jahr als 20. Jahrhundert angenommen. |
Suffixe
TH |
Gibt th, st, rd oder nd entsprechend der führenden Zahl wie 1st zurück, 2. 3. 4. |
SP |
Buchstabiert die führende Nummer |
AM oder PM |
Gibt AM oder PM entsprechend der Zeit zurück |
SPTH |
Gibt buchstabierte Ordnungszahl zurück. Für. Beispiel First, Fourth |
Zum Beispiel, um das heutige Datum im folgenden Format zu sehen
Freitag, 7. März 2014
Geben Sie die folgende Anweisung ein
select to_char(sysdate,’Day, ddth Month, yyyy‘) „Today“ from dual;
TODAY
————————
Freitag, 7. März 2014
Zum Beispiel möchten Sie die Einstellungsdaten aller Mitarbeiter im folgenden Format sehen
Freitag, 8. August 2003
Dann geben Sie die folgende Abfrage ein.
select to_char(hire_date,’Day, ddth Month, yyyy‘) from emp;
TO_DATE Beispiel
To_Date Funktion wird verwendet, um Strings in Datumswerte zu konvertieren. Sie möchten zum Beispiel wissen, welcher Tag am 15-Aug-1947 war. Verwenden Sie die Funktion to_date, um die Zeichenkette zunächst in einen Datumswert zu konvertieren und diesen Wert dann an die Funktion to_char weiterzugeben, um den Tag zu extrahieren.
select to_char(to_date(’15-aug-1947′,’dd-mon-yyyy‘),’Day‘)
from dual;
TO_CHAR(
——–
Freitag
Um zu sehen, wie viele Tage seit dem 15-aug-1947 vergangen sind, geben Sie folgende Abfrage ein
select sysdate-to_date(’15-aug-1947′,’tt-mon-jjjjj‘) from dual;
Nun wollen wir sehen, welches Datum in 45 Tagen von jetzt an eintreten wird
select sysdate+45 from dual;
SYSDATE
——-
06-JUN-2003
ADD_MONTHS
Um zu sehen, welches Datum in 6 Monaten von jetzt an eintreten wird, können wir die Funktion ADD_MONTHS verwenden
Select ADD_MONTHS(SYSDATE,6) from dual;
ADD_MONTHS
———-
22-OCT-2003
MONTHS_BETWEEN
Um zu sehen, wie viele Monate seit einem bestimmten Datum vergangen sind, verwenden Sie die Funktion MONTHS_BETWEEN.
Um zum Beispiel zu sehen, wie viele Monate seit dem 15. August 1947 vergangen sind, geben Sie die folgende Abfrage ein.
select monate_zwischen(sysdate,bis_datum(’15-aug-1947′))
from dual;
Months
——
616.553
Um den Dezimalwert zu entfernen, verwenden Sie die Funktion truncate
select trunc(months_between(sysdate,to_date(’15-aug-1947′)))
from dual;
Monate
——
616
LAST_DAY
Um das letzte Datum des Monats eines bestimmten Datums zu sehen, verwenden Sie die Funktion LAST_DAY.
select LAST_DAY(sysdate) from dual;
LAST_DAY
——–
31-AUG-2003
NEXT_DAY
Um zu sehen, wann ein bestimmter Tag als nächstes kommt, verwenden Sie die Funktion NEXT_DAY.
Um zum Beispiel zu sehen, wann der nächste Samstag kommt, geben Sie die folgende Abfrage ein
select next_day(sysdate) from dual;
NEXT_DAY
———–
09-AUG-2003
EXTRACT
Eine EXTRACT datetime Funktion extrahiert und gibt den Wert eines angegebenen datetime Feldes aus einem datetime oder Intervall Wert Ausdruck zurück. Wenn Sie eine TIMEZONE_REGION oder TIMEZONE_ABBR (Abkürzung) extrahieren, ist der zurückgegebene Wert eine Zeichenkette, die den entsprechenden Zeitzonennamen oder die Abkürzung enthält
Die Syntax der EXTRACT-Funktion lautet
EXTRACT ( YEAR / MONTH / WEEK / DAY / HOUR / MINUTE / TIMEZONE FROM DATE)
Beispiel
Das folgende Beispiel zeigt die Verwendung der EXTRACT-Funktion, um das Jahr aus dem aktuellen Datum zu extrahieren.
select extract(year from sysdate) from dual;
EXTRACT
——-
2003
Schreibe einen Kommentar