In Oracle Database, de SYS_EXTRACT_UTC()
functie extraheert de UTC (Coordinated Universal Time) uit een datetime-waarde met tijdzone-offset of tijdzoneregionaam.
Syntaxis
De syntaxis gaat als volgt:
SYS_EXTRACT_UTC(datetime_with_timezone)
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Resultaat:
25/AUG/35 06:30:45.123456789 AM
Het resulterende formaat hangt af van de waarde van uw NLS_TIMESTAMP_FORMAT
parameter. De standaardwaarde van deze parameter is afgeleid van de NLS_TERRITORY
parameter. Het wijzigen van een van deze kan het formaat van de SYS_EXTRACT_UTC()
. wijzigen functie voor uw sessie.
Voorbeeld:
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;
Resultaat:
25-AUG-2035 06:30:45.123456789
En zo ziet het eruit als ik de NLS_TERRITORY
. instel parameter naar AMERICA
:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Resultaat:
25-AUG-35 06.30.45.123456789 AM
Als u deze parameter wijzigt, stelt u impliciet de NLS_TIMESTAMP_FORMAT
. in naar het formaat voor AMERICA
.
Zie Hoe u de datumnotatie van uw sessie kunt wijzigen voor meer informatie en voorbeelden.
Naam regio tijdzone
U kunt ook de naam van de tijdzoneregio gebruiken in plaats van de tijdzoneverschuiving.
Voorbeeld:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 Asia/Bangkok')
FROM DUAL;
Resultaat:
25-AUG-35 03.30.45.123456789 AM
Standaard tijdzone
Als er geen tijdzone is opgegeven, wordt de datetime gekoppeld aan de tijdzone van de sessie.
Voorbeeld:
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789')
FROM DUAL;
Resultaat:
25-AUG-35 12.30.45.123456789 AM
U kunt de tijdzone van de huidige sessie controleren met de SESSIONTIMEZONE
functie:
SELECT SESSIONTIMEZONE
FROM DUAL;
Resultaat:
Australia/Brisbane
Zie 4 manieren om de tijdzone in Oracle te wijzigen voor voorbeelden om dit te wijzigen.
Nullargumenten
Doorgeven van null
resulteert in een fout:
SELECT SYS_EXTRACT_UTC(null)
FROM DUAL;
Resultaat:
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.
Ontbrekend argument
Het aanroepen van de functie met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT SYS_EXTRACT_UTC()
FROM DUAL;
Resultaat:
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: