Выбрать главу

года используются следующие правила.

■ Правило 1. Если представленный год лежит в интервале от 00 до 49

и текущий год попадает в тот же интервал, столетие будет установлено

равным текущему столетию. Следовательно, первые две цифры

представленного года будут установлены равными первым двум цифрам

текущего года. Например, если последние две цифры представленного

года равны 15, а текущий год - 2005, то представленный год

будет установлен равным 2015.

148 Гпава 5

■ Правило 2. Если представленный год лежит в интервале от 50 до 99,

а текущий год попадает в интервал от 00 до 49, то столетие будет равно

текущему столетию минус 1. Следовательно, первые две цифры

представленного года будут установлены равными первым двум цифрам

текущего года минус 1. Например, если последние две цифры

представленного года равны 75, а текущий год - 2005, то представленный

год будет установлен равным 1975.

■ Правило 3. Если представленный год лежит в интервале от 00 до 49,

а текущий год попадает в интервал от 50 до 99, то столетие будет равно

текущему столетию плюс 1. Следовательно, первые две цифры

представленного года будут установлены равными первым двум цифрам

текущего года плюс 1. Например, если последние две цифры

представленного года равны 15, а текущий год - 2075, то представленный

год будет установлен равным 2115.

■ Правило 4. Если представленный год лежит в интервале от 50 до 99

и текущий год попадает в интервал от 50 до 99, то столетие будет равно

текущему столетию. Следовательно, первые две цифры представленного

года будут установлены равными первым двум цифрам текущего

года. Напрймер, если последние две цифры представленного

года равны 55, а текущий год - 2075, то представленный год будет установлен

равным 2055.

В таблице 5.3 эти правила приведены в более наглядном виде.

Примечание Если используется формат RRRR, но представлены только две последние цифры

года, дата будет интерпретироваться с использованием формата RR.

Таблица 5.3. Как интерпретируются двузначные представления года

Представленное двузначное значение года

Последние две цифры

текущего года

00-49

00-49 Правило 1: Первые две

цифры представленного

года устанавливаются равными

первым двум цифрам

текущего года.

50-99 Правило 3: Первые две

цифры представленного

года устанавливаются равными

первым двум цифрам

текущего года плюс 1.

50-99

Правило 2: Первые две цифры

представленного года устанавливаются

равными первым

двум цифрам текущего

года минус 1.

Правило 4: Первые две цифры

представленного года устанавливаются

равными первым

двум цифрам текущего

года.

Рассмотрим пример запроса, который использует формат RR при интерпретации

дат 15 и 75. Для следующего примера предположим, что текущий

год - 2007.

□ SELECT

T0_CHAR(T0_DATE('04-JUL-15’, ‘DD-M0N-RR’), ‘DD-M0N-YYYY’),

T0_CHAR(T0_DATE('04-JUL-75', 'DD-M0N-RR'), 'DD-M0N-YYYY'),

Хранение и обработка дат и времени 149

TO_CHAR(TO_TO_CHAR(TO_

04-JUL-2015 04-JUL-1975

Как и ожидалось исходя из правил 1 и 2, годы 15 и 75 были интерпретированы

как 2015 и 1975.

Для следующего примера предположим, что текущим годом является

год 2075.

П SELECT

T0_CHAR(T0_DATE(104-JUL-15’ , ' DD-MON-RR’ ), ' DD-MON-YYYY’ ),

T0_CHAR(T0_DATE(‘ 0 4 -JU L -5 5 ', ‘ DD-MON-RR’ ), ‘ DD-MON-YYYY’ ),

T0_CHAR(T0_ T0_CHAR(T0_

04-JUL-2115 04-JUL-2055

Как и ожидалось исходя из правил 3 и 4, годы 15 и 55 были интерпретированы

как 2115 и 2055.

Использование функций с аргументом типа дата-время

Функции с аргументом типа дата-время используются для получения или

обработки значений дата-время или меток даты/времени (о типе данных

метки даты/времени см. ниже в данной главе). В таблице 5.4 показаны некоторые

из функций с аргументом типа дата-время. В этой таблице х представляет

либо тип данных дата-время, либо метку даты/времени.

Таблица 5.4. Функции для работы с датой-временем

Функция Описание

ADD_M0NTHS(x, у)

LAST_DAY(x)

MONTHS_BETWEEN(x, у)

NEXT_DAY(x, день)

R0UND(x [, единицы])

SYSDATE

TRUNC(x [, единицы])

Возвращает результат добавления у месяцев к значению х. Если у

отрицательно, из значения х вычитается у месяцев.

Возвращает значение последнего дня месяца, содержащегося в х.

Возвращает число месяцев между х и у. Если х появляется в календаре

раньше, чем у, возвращаемое значение будет отрицательным,

в противном случае - положительным.