Страница 1 из 1

Расчет периода ПОЛНЫХ лет

Добавлено: 12 апр 2007, 04:55
mshp
Добрый день!
Нужен расчет периода в годах, но именно полных лет, а вычисдяемое поле типа (Data2 - Data1)/365 округляет результат к ближайшему целому.
Подскажите, пожалуйста, как можно получить целую часть (модуль) числа без округления или округлить в меньшую сторону.

Заранее спасибо!

Добавлено: 12 апр 2007, 07:54
Dimitry Sibiryakov
Или перенести вычисление на клиента или использовать UDF.

Добавлено: 12 апр 2007, 08:29
CyberMax
А если что-то вроде

Код: Выделить всё

EXTRACT(YEAR FROM DATE2) - EXTRACT(YEAR FROM DATE1)
?

Добавлено: 12 апр 2007, 11:43
WildSery
Просто делить - неверный подход. Можно и ошибку в 1 день словить.
Решение есть на sql.ru

Добавлено: 13 апр 2007, 05:35
mshp
Спасибо!
На sql.ru очень приятное решение. Все работает
STAG = extract(year from current_date)-extract(year from :vrdate) +
Case
when extract(month from current_date)>extract(month from :vrdate) then 0
when ((extract(month from current_date)=extract(month from :vrdate)) and
(extract(day from current_date)>=extract(day from :vrdate))) then 0
else -1
end;