Тип данных INTERVAL YEAR TO MONTH
может иметь поля YEAR
и MONTH
.
Тип данных INTERVAL DAY TO SECOND
может иметь поля DAY
, HOUR
, MINUTE
и SECOND
.
Фактическое подмножество полей, составляющих элемент любого типа интервала, определяется описателем интервала, и это подмножество называется точностью элемента.
Интервалы «год-месяц» могут взаимно сравниваться и назначаться только другим интервалам «год-месяц», и интервалы «день-время» могут взаимно сравниваться и назначаться только другим интервалам «день-время».
Пример типа данных INTERVAL YEAR TO MONTH
В типе данных 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
В примере на рисунке создается таблица лабораторного задания со столбцом 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
показывает, как эти данные отображаются в базе данных.
Далее: Использование коррелированных подзапросов