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: