In der Oracle-Datenbank die SYS_EXTRACT_UTC()
extrahiert die UTC (koordinierte Weltzeit) aus einem datetime-Wert mit Zeitzonenoffset oder Zeitzonenregionsname.
Syntax
Die Syntax lautet wie folgt:
SYS_EXTRACT_UTC(datetime_with_timezone)
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Ergebnis:
25/AUG/35 06:30:45.123456789 AM
Das resultierende Format hängt vom Wert Ihres NLS_TIMESTAMP_FORMAT
ab Parameter. Der Standardwert dieses Parameters wird von NLS_TERRITORY
abgeleitet Parameter. Das Ändern einer davon kann das Format von SYS_EXTRACT_UTC()
ändern Funktion für Ihre Sitzung.
Beispiel:
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD-MON-RRRR HH24:MI:SSXFF';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Ergebnis:
25-AUG-2035 06:30:45.123456789
Und so sieht es aus, wenn ich NLS_TERRITORY
setze Parameter auf AMERICA
:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Ergebnis:
25-AUG-35 06.30.45.123456789 AM
Das Ändern dieses Parameters legt implizit das NLS_TIMESTAMP_FORMAT
fest in das Format für AMERICA
.
Weitere Informationen und Beispiele finden Sie unter So ändern Sie das Datumsformat Ihrer Sitzung.
Name der Zeitzonenregion
Sie können alternativ den Namen der Zeitzonenregion anstelle des Zeitzonenoffsets verwenden.
Beispiel:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 Asia/Bangkok')
FROM DUAL;
Ergebnis:
25-AUG-35 03.30.45.123456789 AM
Standardzeitzone
Wenn keine Zeitzone angegeben ist, wird datetime mit der Sitzungszeitzone verknüpft.
Beispiel:
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789')
FROM DUAL;
Ergebnis:
25-AUG-35 12.30.45.123456789 AM
Sie können die Zeitzone der aktuellen Sitzung mit SESSIONTIMEZONE
überprüfen Funktion:
SELECT SESSIONTIMEZONE
FROM DUAL;
Ergebnis:
Australia/Brisbane
Siehe 4 Ways to Change the Time Zone in Oracle für Beispiele, wie Sie dies ändern können.
Null-Argumente
Übergabe von null
führt zu einem Fehler:
SELECT SYS_EXTRACT_UTC(null)
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT SYS_EXTRACT_UTC(null) FROM DUAL Error at Command Line : 1 Column : 24 Error report - SQL Error: ORA-30175: invalid type given for an argument 30175. 00000 - "invalid type given for an argument" *Cause: There is an argument with an invalid type in the argument list. *Action: Use the correct type wrapper for the argument.
Fehlendes Argument
Der Aufruf der Funktion mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT SYS_EXTRACT_UTC()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT SYS_EXTRACT_UTC() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: