C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
SQL-запрос с датами
Valdemar
Отправлено: 25.02.2004, 15:58


Мастер участка

Группа: Участник
Сообщений: 433



Есть таблица Access, в которой есть два поля srok_start и srok_end, содержащие дату начала и дату окончания периода. Начало и конец периода могут попасть в один месяц, а может начало в одном месяце, а конец периода в следующем месяце.
Необходимо написать запрос для выборки записей, у которых srok_start попадает в определенный месяц, и посчитать сколько дней периода попало в этот месяц, а сколько дней в следующий. Как отобрать записи за определенный месяц я знаю. Проблема в том как посчитать сколько дней попало в этот, а сколько в следующий месяц.
trigger
Отправлено: 25.02.2004, 17:22


Не зарегистрирован







в следующем месяце -
day(srok_end)
кажись есть такая ф-я в аксесе.
а в текущем месяце — не зная сколько всего дней в данном месяце — как?
вообще на sql.ru/forum можно поискать. отличный ресурс! наверняка найдутся варианты.
Valdemar
Отправлено: 26.02.2004, 09:04


Мастер участка

Группа: Участник
Сообщений: 433



2 trigger
QUOTE
в следующем месяце — day(srok_end)

Не всегда, если весь период попал в один месяц. то в следующем месяце будет 0.
trigger
Отправлено: 26.02.2004, 09:57


Не зарегистрирован







да. это я поторопился...
может тогда
day(srok_end)*(mounth(srok_end)-mounth(srok_start))
хотя конечно если период начался в декабре а закончился в январе...
sad.gif(
Snake
Отправлено: 26.02.2004, 11:49


Ученик-кочегар

Группа: Участник
Сообщений: 22




date0 = Непереходящий интервал ? srok_end : DateAdd("D",Day(srok_end)*-1, srok_end)

days1 = date0 — srok_start + 1
days2 = srok_end — date0

где date0 — дата отчета

Snake
Отправлено: 26.02.2004, 11:49


Ученик-кочегар

Группа: Участник
Сообщений: 22




date0 = Непереходящий интервал ? srok_end : DateAdd("D",Day(srok_end)*-1, srok_end)

days1 = date0 — srok_start + 1
days2 = srok_end — date0

где date0 — дата отчета


Вернуться в Работа с базами данных в C++Builder