Функция Oracle CURRENT_TIMESTAMP
Как получить текущую дату и время в часовом поясе сеанса в Oracle?
Функция CURRENT_TIMESTAMP () возвращает текущую дату и время в часовом поясе сеанса в виде типа данных TIMESTAMP WITH TIME ZONE.
Синтаксис :
CURRENT_TIMESTAMP [(точность)]
Параметры :
название | Описание |
---|---|
точность (опционально) | Определяет долю секунды в точности возвращаемого значения времени. |
Замечания:
- Смещение часового пояса отражает текущее местное время сеанса SQL.
- Значение точности по умолчанию - 6.
- CURRENT_TIMESTAMP возвращает значение TIMESTAMP WITH TIME ZONE, тогда как LOCALTIMESTAMP возвращает значение TIMESTAMP.
Относится к:
Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i
Иллюстрированная презентация
Пример: функция Oracle CURRENT_TIMESTAMP ()
В следующем примере мы использовали разные часовые пояса, CLS_DATE_FORMAT и отображали текущую временную метку и часовой пояс сеанса:
SQL> ALTER SESSION SET TIME_ZONE ='-2:0';
Session altered.
SQL> ALTER SESSION SET NLS_DATE_FORMAT ='DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> SELECT CURRENT_TIMESTAMP,SESSIONTIMEZONE FROM DUAL;
Пример вывода:
CURRENT_TIMESTAMP SESSIONTIMEZONE ------------------------------------- ------------- ---- 10-ИЮНЬ-15 10.49.16.482000 AM -02: 00 -02: 00
Когда вы используете CURRENT_TIMESTAMP с маской формата, убедитесь, что маска формата соответствует значению, возвращаемому функцией.
Следующая инструкция завершается ошибкой, потому что маска не включает часть TIME ZONE типа, возвращаемого функцией:
INSERT INTO current_test VALUES
(TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM'));
Следующий оператор использует правильную маску формата для соответствия типу возвращаемого значения CURRENT_TIMESTAMP:
INSERT INTO current_test VALUES
(TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM TZH:TZM'));
Предыдущая: CURRENT_DATE
Далее: DBTIMEZONE
Новый контент: Composer: менеджер зависимостей для PHP , R программирования