Показать сообщение отдельно
Старый 17.06.2008, 15:30   #4  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
DSPIC
про использования интервала для даты это можно, но что делать со временем не понятно.
Поля StrartTime и EndTime определены как TimeHour24 или можно сними работать как с целыми числами (каждая единица секунда) 7200 =2ч
если StartTime =23:00: а EndTime = 6:00:00
а t = 2:00:00
то условие StartTime<t AND t< EndTime теряет всякий смысл.
23 > 2

Надо как кто привязать дату ко времени.
Если сделать так
X++:
   queryBuildDataSource.addRange(fieldnum(MilkShifts,StartTime)).value("<" + t +"-( StartDate -"+ d+" )*86400" ); 
//86400 - это сутки в секундах
т.е. в запросе бы получалось так
(mShifts.StartTime<(t+(d-mShifts.StartDate)*86400) && (t-(mShifts.EndDate-d)*86400)<mShifts.EndTime

t - текущее время
d - текущая дата

Если текущая дата = StartDate и EndDate то выражение (mShifts.EndDate-d)*86400) == 0
А если время начальное и конечное в разных датах то данное выражение имеет мысл.

Но как его завернуть в query ?