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

Troubles with Date Period

Добавлено: 25 мар 2005, 13:25
warmind
Table имеет два поля DBL1 и DBL2, означающие начало и конец периода, причём период может растягиваться на разные годы:
28.12.04 : 12.01.05
Нужно сделать выборку с 01.12.04 по 31.12.04 или
с 01.01.05 по 31.01.05
то есть из интервала нужно выделить подинтервал дат
ясное дело что простым between не обойтись, куда копать?

Добавлено: 25 мар 2005, 16:09
kdv
тебе надо доп. поле, которое хранит количество дней от начала старта "интервала". то есть длительность события в днях. В общем, недоработал ты модель данных...

Добавлено: 28 мар 2005, 09:57
Ivan_Pisarevsky
А УДФкой не удастся отмазаться?
типа берем 2 параметра (2 даты) выплевываем разницу в днях (integer)...

Добавлено: 29 мар 2005, 11:10
warmind
Делаем две функции (могут быть варианты).
f_max(date1, date2)
f_min(date1, date2)

а потом запрос:

select f_max(DBO, report_begin_date), f_min(DEO, report_end_date)
from <твоя_таблица>
where (DBO >= report_start_date) or (DEO <= report_end_date)

Dmitry Prokopenko (C)