Сдвиг даты на заданный интервал

Функция

Сдвиг даты на заданный интервал.

Спецификация
<тип интервала>::=
<исходная дата>::=
Синтаксические правила
  1. Допустимые значения параметра <тип интервала>:

    Тип интервалаЕдиницы интервала
    1Тики
    2Секунды
    4Минуты
    8Часы
    16Дни
    32Недели
    64Месяцы
    128Кварталы
    256Годы
  2. <Числовое выражение> приводится к целочисленному значению.

  3. Все аргументы могут быть заданы <SQL-параметром>, который должен содержать спецификацию типа данных параметра.

    select multime(:hour (int),? (int),? (date));
    8
    4
    01.01.2013:12:45
    |01.01.2013:16:45:00.00|

Возвращаемое значение
  1. Результат функции не должен превышать дату 31.12.9999 года (в случае сдвига вперед) и дату начала нашей эры (в случае сдвига назад).

  2. Возвращается значение типа DATE, увеличенное (уменьшенное) по сравнению с <исходной датой> на заданный <интервал>.

  3. Если <исходная дата> представлена только временем, и <интервал> задает дни, недели, месяцы, кварталы или годы, то она перед вычислением устанавливается к текущей дате.

Примеры

Пусть файл multime1.sql содержит операторы:

select sysdate;
select multime(8,2,sysdate);
select multime(16,-4.7,sysdate);
select multime(256,.95е2,sysdate);
select multime(8,ceil(2.67), sysdate);
SQL>_multime1
|07.09.2010:10:29:21.73 |

|07.09.2010:12:29:21.73 |

|03.09.2010:10:29:21.73 |

|07.09.2105:10:29:21.73 |

|07.09.2010:13:29:21.73 |