Теория для лабораторной работы №1 - "Изучение команд DDL", страница 7

Для каждой переменной типа DATE запоминается следующая информация:

*  век

*  год

*  месяц

*  день

*  час

*  минута

*  секунда

Для получения значения типа DATE необходимо преобразовать символьное или числовое значение в значение типа DATE используя функцию TO_DATE. Oracle автоматически преобразовывает символьное значение, которое соответствуют заданному по умолчанию формату даты, устанавливаемому  инициализацией параметра NLS_DATE_FORMAT. По умолчанию этот параметр проинициализирован строкой 'DD-MON-YY'.  Этот формат даты включает 2 разряда для дня, аббревиатуру названия месяца и 2 цифры года.

Пример.

Установим текущий формат даты для 4-х знаков столетия:

ALTER SESSION SET NLS_DATE_FORMAT=’DD-MM-YYYY’

Если определить переменную типа DATE без компонента времени, время по умолчанию – 12:00:00 a.m. (полночь).

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

Функция SYSDATE возвращает текущую дату и время.

Арифметика дат

К переменным типа DATE можно добавлять или вычитать числовые константы. Oracle интерпретирует эти числа в арифметическом выражении как количество дней. Например, SYSDATE + 1 – завтра, SYSDATE – 7 – неделя назад, SYSDATE + (10/1440) – 10 минут вперёд. Oracle не позволяет умножать или делить переменные типа DATE.

Использование Юлианского формата даты

Юлианская дата – количество дней, прошедших с 1 января 4712 г. до н.э. Для преобразования даты в её юлианский эквивалент необходимо использовать управляющий символ ‘J’ вместе с функциями TO_DATE и TO_CHAR.

Пример.

Следующий оператор возвращает юлианский эквивалент даты 01-01-1992:

SELECT TO_CHAR(TO_DATE('01-01-1992', 'MM-DD-YYYY'),'J')

      FROM DUAL

-----------------------------------------------------------------------

2448623

Функции над датами

Приведенные ниже функции оперируют со значениями типа DATE. Все эти функции возвращают значения типа DATE, кроме функции MONTHS_BETWEEN, которая возвращает число.