В 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: