Литералы типа DATE и TIMESTAMP в PL/SQL

DATE и TIMESTAMP в PL/SQLЛитералы DATE и TIMESTAMP (а также интервальные литералы) являются частью стандарта ISO SQL и поддерживаются в PL/SQL, начиная с Oracle9i. Они представляют еще одну возможность записи значений в переменные типа даты/времени. Литерал даты состоит из ключевого слова DATE, за которым следует дата (и только дата!) в следующем формате: 

DATE 'YYYY-MM-DD'

Литерал TIMESTAMP состоит из ключевого слова TIMESTAMP, за которым указывается дата и время в строго определенном формате: 

TIMESTAMP 'YYYY-MM-DD HH:MI:SS[.FFFFFFFFF] [{+|-}HH:MI]'

Обозначение FFFFFFFFF представляет доли секунды и не является обязательным. Доли секунды занимают от одной до девяти цифр. Необязательное смещение часового пояса (+HH:MI ) может содержать знак «плюс» или «минус». Часы всегда задаются в 24-часовом формате.

Если в литерале типа TIMESTAMP не указано смещение часового пояса, по умолчанию будет использоваться часовой пояс текущего сеанса.

В следующем коде PL/SQL представлено несколько допустимых литералов типа DATE и TIMESTAMP

DECLARE
ts1 TIMESTAMP WITH TIME ZONE;
ts2 TIMESTAMP WITH TIME ZONE;
ts3 TIMESTAMP WITH TIME ZONE;
ts4 TIMESTAMP WITH TIME ZONE;
ts5 DATE;
BEGIN
--Две цифры для долей секунды
ts1 := TIMESTAMP '2002-02-19 11:52:00.00 -05:00';
--9 цифр для долей секунды, 24-часовой формат.
ts2 := TIMESTAMP '2002-02-19 14:00:00.000000000 -5:00';
--Без долей секунды
ts3 := TIMESTAMP '2002-02-19 13:52:00 -5:00';
--Без часового пояса, по умолчанию используется часовой пояс текущего сеанса
ts4 := TIMESTAMP '2002-02-19 13:52:00';
--Литерал типа DATE
ts5 := DATE '2002-02-19';
END;

Формат литералов DATE и TIMESTAMP определяется стандартами ANSI/ISO; изменить его не сможете ни вы, ни администратор базы данных. Поэтому использование этих литералов уместно везде, где в программном коде должны задаваться конкретные значения (например, константы) даты/времени.

База данных Oracle позволяет использовать в литералах TIMESTAMP имена регионов часовых поясов — например, TIMESTAMP '2002-02-19 13:52:00 EST'. Однако следует помнить, что эта функциональность выходит за рамки стандарта SQL.

Имя Описание
YEAR Количество лет в диапазоне от 1 до 999 999 999
MONTH Количество месяцев в диапазоне от 0 до 11
DAY Количество дней в диапазоне от 0 до 999 999 999
HOUR Количество часов в диапазоне от 0 до 23
MINUTE Количество минут в диапазоне от 0 до 59
SECOND Количество секунд в диапазоне от 0 до 59,999 999 999

Вас заинтересует / Intresting for you:

Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 14846 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 4651 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Тип данных RAW в PL/SQL
Тип данных RAW в PL/SQL 12340 просмотров Doctor Thu, 12 Jul 2018, 08:41:33
Символьные функции и аргументы...
Символьные функции и аргументы... 18587 просмотров Анатолий Wed, 23 May 2018, 18:54:01
Войдите чтобы комментировать