sql >> Database teknologi >  >> RDS >> Oracle

TZ_OFFSET() Funktion i Oracle

I Oracle Database er TZ_OFFSET() funktion returnerer tidszoneforskydningen svarende til argumentet baseret på den dato, sætningen udføres.

Syntaks

Syntaksen ser sådan ud:

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

Eksempler

Her er nogle eksempler til demonstration.

Tidszoneregionsnavn

Du kan sende et gyldigt tidszoneområdenavn:

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

Resultat:

+09:30

Sådan får du en liste over understøttede tidszoner i dit system.

Tidszoneforskydning

Du kan passere en tidszoneforskydning, i hvilket tilfælde den blot returnerer sig selv:

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

Resultat:

-10:00

SESSIONTIMEZONE Funktion

SESSIONTIMEZONE funktion returnerer tidszonen for den aktuelle session. Du kan bruge dette til at få tidszoneforskydningen for din aktuelle session.

Eksempel:

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Resultat i min session:

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

DBTIMEZONE Funktion

DBTIMEZONE funktion returnerer databasens tidszone. Dette kan være det samme som SESSIONTIMEZONE på dit system.

Eksempel:

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Resultat:

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

Nul-argumenter

Sender null resulterer i null :

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

Resultat:

null

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null opstår som et resultat af en SQL SELECT udmelding.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Manglende argument

Kaldning af funktionen med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer i en fejl:

SELECT TZ_OFFSET()
FROM DUAL;

Resultat:

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. Søg efter en bestemt streng i Oracle clob-kolonnen

  2. 9.6 Scariest Patch Tournament

  3. Sådan sikkerhedskopieres og gendannes (eksportere og importere) MySQL-databaser Tutorial

  4. Implementering og administration af MySQL NDB Cluster med ClusterControl