Інструкція SET TIME ZONE - SQL програмування
Зміст
Інструкція SET TIME ZONE змінює часовий пояс для поточного сеансу, якщо потрібно, щоб він відрізнявся від заданого за промовчанням.
Синтаксис SQL 2003
SET TIME ZONE '00:00' [HOUR TO MINUTE]>.
Ключові слова
Часовий пояс поточного сеансу встановлюється рівним часовому поясу локального сервера.
Встановлюється величина приросту (знак +) чи зменшення (знак -) щодо часу, заданого за умовчанням.
Вказується зсув часового поясу щодо Загального скоординованого часу (UTC) у годинах та хвилинах.
HOUR ТО MINUTE
Вказується тип даних для TIME ZONE.
Загальні правила
Ця досить проста команда встановлює часовий пояс поточного сеансу користувача рівним часовому поясу сервера (LOCAL) або визначає його щодо Загального скоординованого часу (Coordinated Universal Time, UTC) (яке раніше називалося Грінвічським часом - GMT). Таким чином, значення параметра INTERVAL, що дорівнює 2, означає, що часовий пояс встановлюється на дві години після UTC, а значення, що дорівнює -6, означає, що часовий пояс встановлюється на 6 годин до UTC (відповідає часовому поясу центральної частини США).
Поради та хитрощі програмування
Як і більшість інших команд SET, інструкцію SET TIME ZONE можна виконувати лише поза явною транзакцією. Іншими словами, не потрібно укладати команду в інструкції START або BEGIN TRAN та COMMIT TRAN.
У Oracle9i та вище ви можете використовувати для зміни часового поясу наступний варіант команди ALTER SESSION.
Щоб повернутися до початкового, заданого за умовчанням часового поясу свого сеансу, скористайтеся ключовим словом LOCAL. Щоб зробити ваш часовий пояс вартовимпоясом бази даних, використовуйте ключове слово DBT1MEZONE. Параметр 'регіон' використовується для вказівки регіонального часового поясу, наприклад, EST або PST1. Щоб вказати зсув часового поясу в годинах та хвилинах щодо Загального скоординованого часу, використовуйте конструкцію типу '-5:00 Значення '-5:00' означає, що ваш час на 5 годин раніше Загального скоординованого часу (наприклад, 5:00 у вас - 10:00 – UTC).
Щоб отримати список допустимих імен регіонів, натисніть наступний запит.
Обидві наведені нижче команди встановлюють часовий пояс у стандартний Східний час. Перша команда досягає цього шляхом вказівки зсуву від Загального скоординованого часу, а друга – шляхом вказівки регіону.
Підтримка часових поясів у Oracle є досить складною. У книзі Steven Feuerstein «Oracle PL/SQL Programming)) (O`Reilly), на чолі про типи даних дата-час, наводиться хороше пояснення.
PostgreSQL
Платформа PostgreSQL дозволяє встановити часовий пояс сеансу рівним заданому за умовчанням часовому поясу сервера, для чого використовуються команди команд і DEFAULT.
Існує кілька відмінностей від ANSI.
'годинний_пояс'
Вказується назва часового поясу. Список допустимих значень залежить від операційної системи. Наприклад, для Linux серверів база даних часових поясів міститься у файлі /usr/share/zoneinfo.
LOCAL DEFAULT
Час поточного сеансу встановлюється відповідно до прийнятого за умовчанням часового поясу локального сервера.
Наприклад, 'PST8PDT' - часовий пояс Каліфорнії в системах Linux, a 'Europe/ Rome' - часовий пояс Італії в системах Linux та інших системах. Якщо ви введете неприпустиме значення часового поясу, буде встановленочасовий пояс UTC.
Якщо часовий пояс зрушується в позитивну сторону від UTC, знак "+" є обов'язковим. Якщо ви введете неприпустиме значення часового поясу, буде встановлено часовий пояс UTC.
У наступному прикладі як часовий пояс PostgreSQL встановлюється Тихоокеанський стандартний час.
Тепер час поточного сеансу повертається до часового поясу, встановленого для сервера за промовчанням.
SQL Server
Додаткова інформація на тему
Деякі правила та методи використання інструкції SET CONNECTION у базах даних на різних платформах
Правила та методи використання інструкції SET TRANSACTION у базах даних на різних платформах
Деякі правила та методи використання інструкції SET у базах даних на різних платформах
Деякі правила та методи використання інструкції SET PATH у базах даних на різних платформах