В Oracle Database, TZ_OFFSET() функцията връща изместването на часовата зона, съответстващо на аргумента, въз основа на датата, на която операторът е изпълнен.
Синтаксис
Синтаксисът е така:
TZ_OFFSET({ 'time_zone_name'
| '{ + | - } hh : mi'
| SESSIONTIMEZONE
| DBTIMEZONE
}
) Примери
Ето няколко примера за демонстрация.
Име на региона на часовата зона
Можете да подадете валидно име на региона на часовата зона:
SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL; Резултат:
+09:30
Ето как да получите списък с поддържани часови зони във вашата система.
Изместване на часовата зона
Можете да подадете отместване на часовата зона, като в този случай то просто се връща:
SELECT TZ_OFFSET('-10:00')
FROM DUAL; Резултат:
-10:00
SESSIONTIMEZONE Функция
SESSIONTIMEZONE функцията връща часовата зона на текущата сесия. Можете да използвате това, за да получите изместване на часовата зона на текущата си сесия.
Пример:
SELECT
SESSIONTIMEZONE,
TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL; Резултат в моята сесия:
SESSIONTIMEZONE TZ_OFFSET(SESSIONTIMEZONE) _____________________ _____________________________ Australia/Brisbane +10:00
DBTIMEZONE Функция
DBTIMEZONE функцията връща часовата зона на базата данни. Това може или не може да е същото като SESSIONTIMEZONE на вашата система.
Пример:
SELECT
DBTIMEZONE,
TZ_OFFSET(DBTIMEZONE)
FROM DUAL; Резултат:
DBTIMEZONE TZ_OFFSET(DBTIMEZONE) _____________ ________________________ +00:00 +00:00
Нулеви аргументи
Предаването на null води до null :
SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL; Резултат:
null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.
Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.
Липсващ аргумент
Извикването на функцията с грешен брой аргументи или без предаване на аргументи води до грешка:
SELECT TZ_OFFSET()
FROM DUAL; Резултат:
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: