In der Oracle-Datenbank die NEW_TIME()
Funktion konvertiert das Datum von einer angegebenen Zeitzone in eine andere angegebene Zeitzone und gibt das Ergebnis zurück.
Syntax
Die Syntax lautet wie folgt:
NEW_TIME(date, timezone1, timezone2)
Die Funktion gibt also das Datum und die Uhrzeit in der Zeitzone timezone2
zurück wann Datum und Uhrzeit in der Zeitzone timezone1
sind date
.
Beachten Sie, dass Sie vor Verwendung dieser Funktion den NLS_DATE_FORMAT
festlegen müssen Parameter zur Anzeige der 24-Stunden-Zeit.
Die Argumente timezone1
und timezone2
kann eine dieser Textzeichenfolgen sein:
AST oder ADT | Atlantische Standardzeit oder Sommerzeit |
BST oder BDT | Beringstandard oder Sommerzeit |
CST oder CDT | Central Standard oder Daylight Time |
EST oder EDT | Eastern Standard oder Sommerzeit |
GMT | Greenwich Mean Time |
HST oder HDT | Alaska-Hawaii-Standardzeit oder Sommerzeit |
MST oder MDT | Mountain Standard oder Sommerzeit |
NST | Neufundländische Normalzeit |
PST oder PDT | Pacific Standard oder Sommerzeit |
YST oder YDT | Yukon Standard oder Sommerzeit |
Beispiel
Hier ist ein Beispiel:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME(
TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'),
'AST',
'PST'
)
FROM DUAL;
Ergebnis:
2030-03-01 08:30:45
Wie bereits erwähnt, wird bei Verwendung dieser Funktion das NLS_DATE_FORMAT
Der Parameter muss so eingestellt werden, dass er die 24-Stunden-Zeit anzeigt, also tut dies die erste Zeile im obigen Beispiel. Sie können diese Zeile weglassen, wenn das NLS_DATE_FORMAT
Ihrer Sitzung ist Der Parameter verwendet bereits die 24-Stunden-Zeit. Weitere Beispiele zum Festlegen des Datumsformats für die aktuelle Sitzung finden Sie unter Festlegen des Datumsformats Ihrer Sitzung.
Null-Argumente
Wenn irgendein Argument null
ist , ist das Ergebnis null
:
SET NULL 'null';
SELECT
NEW_TIME(null, 'AST', 'ADT') AS "1",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
FROM DUAL;
Ergebnis:
1 2 3 _______ _______ _______ null null null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null
tritt als Ergebnis eines SQL SELECT
auf Erklärung.
Sie können jedoch SET NULL
verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null
zurückgegeben werden soll.
Fehlendes Argument
Aufruf von NEW_TIME()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT NEW_TIME()
FROM DUAL;
Ergebnis:
Error starting at line : 1 in command - SELECT NEW_TIME() 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: