![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток, уважаемые господа.
Помогите пожалуйста разобраться с алгоритмом. Есть база Paradox, в которой хранятся данные по заказам <something>. Поля: 1)Дата начала заказа 2)Время начала заказа 3)Дата завершения заказа 4)Время завершения заказа. Для отчёта необходимо выяснить, какие заказы попадают в заданный диапазон времени. Данные (дата\время начала и завершения) вводятся вручную. Пытаюсь сделать это на условиях: если дата_начала_ручная>=даты_начала_заказа и дата_завершения_ручная<=даты_завершения заказа, то... и тут тупик. Как сравнивать время--упёрся в стену лбом. В принципе, казалось бы, ничего сложного, по такому же принципу делать, а не получается. Может быть кто-то знает более упрощённый принцип? Или хотя бы подскажите пожалуйста рабочий алгоритм. |
#2
|
||||
|
||||
![]() может знаки поменять?
если дата_начала_ручная<=даты_начала_заказа и дата_завершения_ручная>=даты_завершения заказа, то... т.е. событие произошло позже, чем введенная дата1 и окончилось раньше, чем введенная дата2, это если проблемма в сравнении Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |
#3
|
|||
|
|||
![]() А даты в каком формате хранятся? Текстовом? Если да, то просто перводишь их в формат TDateTime
Код:
DateTimeToStr(StrToDateTime(strDate + ' ' + strTime)) |
#4
|
|||
|
|||
![]() Переделай так, что бы хранить дату и вреся в одном поле.
Далее, либо в запросе, либо в паскалевском коде сравниваешь 2 значениея типа TDateTime. И все у тебя получится. Нет смысла хранить дату и время в разных полях, тем более, что все подобные типы прекрасно поддерживают их хранение в одном поле. |
#5
|
|||
|
|||
![]() lmikle, к сожалению переделывать так как ты написал уже не получится, может быть как-то можно соединить дату/время в одно значение только на время выполнения отчёта (в смысле держать значение в переменной просто)? Если можно, то каким образом?
Суть идеи понял, как раз то, что нужно, меньше головняка будет при постоении условий. Подскажи плиз, в какую сторону хоть копать, чтобы склепать дату-время воедино? Последний раз редактировалось w1zard, 18.11.2008 в 00:26. |
#6
|
|||
|
|||
![]() Попробуй их просто сложить.
Если у тебя репорт расчитывается в дельфи, то просто FieldByName('DATE_BEGIN').AsDateTime + FielsByName('TIME_BEGIN').AsDateTime Получишь тип TDateTime, который и будешь сравнивать. |
#7
|
|||
|
|||
![]() lmikle, огромное спасибо, ща буду сношаться с этими датами, будь они неладны.
|