PLSQL | CURRENT_DATE, функция

Опубликовано: 30 Ноября, 2021

Функция PLSQL CURRENT_DATE используется для возврата текущей даты в часовом поясе сеанса. Используемый часовой пояс - это часовой пояс текущего сеанса SQL, установленный командой ALTER SESSION. Функция PLSQL CURRENT_DATE использует свое значение из григорианского календаря с типом данных DATE.
Функция CURRENT_DATE не принимает параметров.

Синтаксис:

 ТЕКУЩАЯ ДАТА

Используемые параметры:
Функция CURRENT_DATE не принимает параметров.

Возвращаемое значение:
Функция CURRENT_DATE возвращает значение даты.

Поддерживаемые версии Oracle / PLSQL:

  1. Оракул 12c
  2. Oracle 11g
  3. Oracle 10g
  4. Oracle 9i
  5. Oracle 8i

Пример-1: Использование функции SESSIONTIMEZONE для поиска часового пояса сеанса.

 ALTER SESSION SET NLS_DATE_FORMAT = 'ДД-МЕСЯЦ-ГГГГ ЧЧ24: МИ: СС';

ВЫБРАТЬ
  СЕССИЯTIMEZONE
ИЗ
  ДВОЙНОЙ;

Выход:

 Сессия изменена.

СЕССИЯTIMEZONE
+00: 00

Пример-2: Использование функции CURRENT_DATE для получения текущей даты в часовом поясе сеанса.

 ALTER SESSION SET NLS_DATE_FORMAT = 'ДД-МЕСЯЦ-ГГГГ ЧЧ24: МИ: СС';

ВЫБРАТЬ
  СЕССИЯTIMEZONE
ИЗ
  ДВОЙНОЙ;
  
ВЫБРАТЬ
  ТЕКУЩАЯ ДАТА
ИЗ
  ДВОЙНОЙ;

Выход:

 Сессия изменена.

СЕССИЯTIMEZONE
+00: 00

ТЕКУЩАЯ ДАТА
22-ОКТ-2019 06:53:58

Пример-3: Использование функции CURRENT_DATE после изменения часового пояса сеанса для получения текущей даты.

 ALTER SESSION SET NLS_DATE_FORMAT = 'ДД-МЕСЯЦ-ГГГГ ЧЧ24: МИ: СС';

ВЫБРАТЬ
  СЕССИЯTIMEZONE
ИЗ
  ДВОЙНОЙ;
 
ALTER SESSION SET TIME_ZONE = '-02: 00';
  
ВЫБРАТЬ
  ТЕКУЩАЯ ДАТА
ИЗ
  ДВОЙНОЙ;

Выход:

 Сессия изменена.

СЕССИЯTIMEZONE
+00: 00

Сессия изменена.

ТЕКУЩАЯ ДАТА
22-ОКТ-2019 05:05:36

Новая текущая дата была скорректирована примерно на -2 часа, как и ожидалось.

SQL