Поля INTERVAL

Тип данных INTERVAL YEAR TO MONTH может иметь поля YEAR и MONTH.

5-17-3045026

Тип данных INTERVAL DAY TO SECOND может иметь поля DAY, HOUR, MINUTE и SECOND.

Фактическое подмножество полей, составляющих элемент любого типа интервала, определяется описателем интервала, и это подмножество называется точностью элемента.

Интервалы «год-месяц» могут взаимно сравниваться и назначаться только другим интервалам «год-месяц», и интервалы «день-время» могут взаимно сравниваться и назначаться только другим интервалам «день-время».

Пример типа данных INTERVAL YEAR TO MONTH

5-18-4829344

В типе данных INTERVAL YEAR TO MONTH хранится период времени с использованием полей YEAR и MONTH даты-времени. Тип данных INTERVAL YEAR TO MONTH задается следующим образом:

INTERVAL YEAR [(year_precision)] TO MONTH

где year_precision – количество разрядов в поле YEAR даты-времени. Значение year_precision по умолчанию равно 2.

Ограничение. Первое поле должно быть более значимым, чем замыкающее поле. Например, INTERVAL '0-1' MONTH TO YEAR является недопустимым.

Примеры

  • INTERVAL '123-2' YEAR(3) TO MONTH

    Обозначает интервал в 123 года и 2 месяца.

  • INTERVAL '123' YEAR(3)

    Обозначает интервал в 123 года и 0 месяцев.

  • INTERVAL '300' MONTH(3)

    Обозначает интервал в 300 месяцев.

  • INTERVAL '123' YEAR

    Возвращает ошибку, так как точность по умолчанию равна 2 разрядам, а число «123» имеет 3 разряда.

Базой данных Oracle поддерживаются два типа данных для интервала: INTERVAL YEAR TO MONTH и INTERVAL DAY TO SECOND. Тип столбца, аргумент PL/SQL, переменная и тип возвращаемого значения должны принадлежать одному из этих двух типов данных. Однако, что касается литералов интервалов, системой распознаются другие типы ANSI-интервалов, например INTERVAL '2' YEAR или INTERVAL '10' HOUR. В этих случаях каждый интервал преобразуется в один из двух поддерживаемых типов.

В примере на рисунке создается таблица WARRANTY, которая содержит столбец warranty_time, принимающий тип данных INTERVAL YEAR(3) TO MONTH. В столбец вставляются разные значения, показывающие годы и месяцы для различных продуктов. Когда эти строки извлекаются из таблицы, видно значение года, отделенное от значения месяцев дефисом (-).

Пример типа данных INTERVAL DAY TO SECOND

5-20-8042911

В примере на рисунке создается таблица лабораторного задания со столбцом test_time, значения которого принадлежат типу данных INTERVAL DAY TO SECOND. Затем в таблицу вставляется значение «90 00:00:00», чтобы указать 90 дней, 0 часов, 0 минут, 0 секунд, и интервал INTERVAL '6 03:30:16' DAY.TO SECOND, чтобы указать 6 дней, 3 часа, 30 минут и 16 секунд. Инструкция SELECT показывает, как эти данные отображаются в базе данных.

Далее: Использование коррелированных подзапросов

Related Posts