sql >> Databáze >  >> RDS >> Oracle

Funkce SYS_EXTRACT_UTC() v Oracle

V databázi Oracle je to SYS_EXTRACT_UTC() Funkce extrahuje UTC (Coordinated Universal Time) z hodnoty datetime s posunem časového pásma nebo názvem regionu časového pásma.

Syntaxe

Syntaxe vypadá takto:

SYS_EXTRACT_UTC(datetime_with_timezone)

Příklad

Zde je příklad k demonstraci:

SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;

Výsledek:

25/AUG/35 06:30:45.123456789 AM

Výsledný formát závisí na hodnotě vašeho NLS_TIMESTAMP_FORMAT parametr. Výchozí hodnota tohoto parametru je odvozena z NLS_TERRITORY parametr. Změnou kteréhokoli z nich můžete změnit formát SYS_EXTRACT_UTC() funkce pro vaši relaci.

Příklad:

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;

Výsledek:

25-AUG-2035 06:30:45.123456789

A takhle to vypadá, když nastavím NLS_TERRITORY parametr na AMERICA :

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;

Výsledek:

25-AUG-35 06.30.45.123456789 AM

Změna tohoto parametru implicitně nastaví NLS_TIMESTAMP_FORMAT do formátu pro AMERICA .

Další informace a příklady naleznete v části Jak změnit formát data relace.

Název oblasti časového pásma

Místo posunu časového pásma můžete alternativně použít název oblasti časového pásma.

Příklad:

SELECT 
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 Asia/Bangkok')
FROM DUAL;

Výsledek:

25-AUG-35 03.30.45.123456789 AM

Výchozí časové pásmo

Pokud není zadáno časové pásmo, pak je datum a čas přidružen k časovému pásmu relace.

Příklad:

SELECT SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789')
FROM DUAL;

Výsledek:

25-AUG-35 12.30.45.123456789 AM

Časové pásmo aktuální relace můžete zkontrolovat pomocí SESSIONTIMEZONE funkce:

SELECT SESSIONTIMEZONE
FROM DUAL;

Výsledek:

Australia/Brisbane

Viz 4 způsoby, jak změnit časové pásmo v Oracle, kde najdete příklady změny.

Nulové argumenty

Předávání null výsledkem je chyba:

SELECT SYS_EXTRACT_UTC(null)
FROM DUAL;

Výsledek:

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.

Chybí argument

Volání funkce s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů má za následek chybu:

SELECT SYS_EXTRACT_UTC()
FROM DUAL;

Výsledek:

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:

  1. Operátoři T-SQL SET Část 2:INTERSECT a EXCEPT

  2. Jak zadat číslo portu v připojovacím řetězci SQL Server?

  3. Zcela nová produkční databáze

  4. Následný krok č. 1 při hledání vedoucích zástupných znaků