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

Funkce TZ_OFFSET() v Oracle

V databázi Oracle je to TZ_OFFSET() funkce vrací posun časové zóny odpovídající argumentu na základě data provedení příkazu.

Syntaxe

Syntaxe vypadá takto:

TZ_OFFSET({ 'time_zone_name'
          | '{ + | - } hh : mi'
          | SESSIONTIMEZONE
          | DBTIMEZONE
          }
         )

Příklady

Zde je několik příkladů k demonstraci.

Název oblasti časového pásma

Můžete předat platný název oblasti časového pásma:

SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;

Výsledek:

+09:30

Zde je návod, jak získat seznam podporovaných časových pásem ve vašem systému.

Posun časového pásma

Můžete předat posun časového pásma, v takovém případě se jednoduše vrátí sám:

SELECT TZ_OFFSET('-10:00')
FROM DUAL;

Výsledek:

-10:00

SESSIONTIMEZONE Funkce

SESSIONTIMEZONE funkce vrací časové pásmo aktuální relace. Toto můžete použít k získání posunu časového pásma vaší aktuální relace.

Příklad:

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Výsledek mé relace:

      SESSIONTIMEZONE    TZ_OFFSET(SESSIONTIMEZONE) 
_____________________ _____________________________ 
Australia/Brisbane    +10:00                       

DBTIMEZONE Funkce

DBTIMEZONE funkce vrací časové pásmo databáze. Toto může, ale nemusí být stejné jako SESSIONTIMEZONE ve vašem systému.

Příklad:

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Výsledek:

   DBTIMEZONE    TZ_OFFSET(DBTIMEZONE) 
_____________ ________________________ 
+00:00        +00:00                  

Nulové argumenty

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

SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;

Výsledek:

null

Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když null dochází v důsledku SQL SELECT prohlášení.

Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.

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 TZ_OFFSET()
FROM DUAL;

Výsledek:

Error starting at line : 1 in command -
SELECT TZ_OFFSET()
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. Jak získat další ID automatického zvýšení v mysql

  2. Výkon SQL UNION vs. OR

  3. Generování dat a kvalita hardwaru

  4. Oracle:exportujte tabulku s objekty BLOB do souboru .sql, který lze znovu importovat