Округление значения типа «дата-время»
Синтаксис
 
date_round(< выражение >,< формат >)

< выражение > – выражение типа «дата-время»;

< формат > – элемент формата «дата-время»:

{'D' | 'DY' | 'DAY' | 'M' | 'Y' |'HH' | 'HH12'| 'HH24'| 'MI'| 'SS'}
Описание

Округление даты до заданного значения.

Округление по году и месяцу имеет свою специфику, например:

dt:=date_round(sysdate(),"y"); //01.01.2007:00:00:00.00

т.е. выдается день и месяц.

«Округленный» год предлагается выбирать так:

var i int;
i:=year(sysdate()); // 2006
Возвращаемое значение
  1. < Выражение >, округленное до заданной точности.

  2. Тип возвращаемого результата – DATE.

  3. Результат при указании < точность > 'D' зависит от наличия ключа /COMPATIBILITY=ORACLE в команде запуска ядра СУБД:

    • значение DATE, округленное до текущего дня, если ключ не задан;

    • значение DATE, округленное до ближайшего дня начала недели, если ключ задан.

  4. Результат при указании < точность > 'DY' или 'DAY' будет округлен до ближайшего дня начала недели.

  5. Если аргумент NULL, результат NULL.

Пример
create or replace procedure date_round_test(in arg char(5)) result date for debug
code
  return date_round(atod("22.08.2015:18:32:55.87"),arg);//
end;
--
call date_round_test('D');
call date_round_test('Y');

Результат:

Return value = 23.08.2015:00:00:00.00
Return value = 01.01.2016:00:00:00.00