![]() |
#19 |
Ищущий знания...
|
Цитата:
Сообщение от S.Kuskov
![]() Извините конечно, но я так и непонял, что такого делает этот прямой запрос, что нельзя сделать средствами аксапты?
Вы же вот это хотели получить? Или я что-то не понимаю? Код: ((T.Date > fromDate) || ((T.Date == fromDate) && (T.Time >= fromTime))) && ((T.Date < toDate) || ((T.Date == toDate) && (T.Time <= toTime))) Мне же нужно определять вхождение периода1 в период2. Вот конкретный пример: Период1 = с 01.10.2010 00 : 00 по 01.10.2010 00 : 00 (понятно, что имеются ввиду одни сутки. Конечно можно сказать, что пользователь должен конечное время в периоде1 указать как 23 : 59, но пользователей много, за каждым не уследишь. Да и интуитивно, как мне кажется, человек считает сутками с 00 : 00 до 00 : 00, поэтому скорее всего рано или поздно так и поставит.) Период2 = с 01.10.2010 09 : 00 по 01.10.2010 18 : 00 Нужно определить входит ли период2 в период1 (визуально понятно, что входит ![]() После раздумий получился следующий код: X++: select 2 where((2.FromDate < 1.ToDate || (2.FromDate == 1.ToDate && (2.FromTime <= 1.ToTime || 1.ToTime == 0))) || 1.ToDate == dateNull()) && ((2.ToDate > 1.FromDate || (2.ToDate == 1.FromDate && (2.ToTime >= 1.FromTime || 2.ToTime == 0))) || 2.ToDate == dateNull()) ![]() ну а если все ок, то и хорошо, может кому пригодиться, и не придется тратить лишний час на проверку правильности логики запроса ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|