Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.11.2008, 23:22
w1zard w1zard вне форума
Прохожий
 
Регистрация: 04.07.2008
Сообщения: 26
Репутация: 10
Вопрос Попадание даты\времени в заданный диапазон

Доброго времени суток, уважаемые господа.
Помогите пожалуйста разобраться с алгоритмом. Есть база Paradox, в которой хранятся данные по заказам <something>. Поля:
1)Дата начала заказа
2)Время начала заказа
3)Дата завершения заказа
4)Время завершения заказа.

Для отчёта необходимо выяснить, какие заказы попадают в заданный диапазон времени. Данные (дата\время начала и завершения) вводятся вручную.
Пытаюсь сделать это на условиях: если дата_начала_ручная>=даты_начала_заказа и дата_завершения_ручная<=даты_завершения заказа, то...
и тут тупик. Как сравнивать время--упёрся в стену лбом. В принципе, казалось бы, ничего сложного, по такому же принципу делать, а не получается. Может быть кто-то знает более упрощённый принцип? Или хотя бы подскажите пожалуйста рабочий алгоритм.
Ответить с цитированием
  #2  
Старый 17.11.2008, 23:38
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

может знаки поменять?
если дата_начала_ручная<=даты_начала_заказа и дата_завершения_ручная>=даты_завершения заказа, то...
т.е. событие произошло позже, чем введенная дата1 и окончилось раньше, чем введенная дата2, это если проблемма в сравнении
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #3  
Старый 17.11.2008, 23:39
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

А даты в каком формате хранятся? Текстовом? Если да, то просто перводишь их в формат TDateTime
Код:
 DateTimeToStr(StrToDateTime(strDate + ' ' + strTime))
Получаешь на выходе вещественное число, вот его уже сравниваешь
Ответить с цитированием
  #4  
Старый 18.11.2008, 00:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Переделай так, что бы хранить дату и вреся в одном поле.
Далее, либо в запросе, либо в паскалевском коде сравниваешь 2 значениея типа TDateTime. И все у тебя получится.

Нет смысла хранить дату и время в разных полях, тем более, что все подобные типы прекрасно поддерживают их хранение в одном поле.
Ответить с цитированием
  #5  
Старый 18.11.2008, 00:23
w1zard w1zard вне форума
Прохожий
 
Регистрация: 04.07.2008
Сообщения: 26
Репутация: 10
По умолчанию

lmikle, к сожалению переделывать так как ты написал уже не получится, может быть как-то можно соединить дату/время в одно значение только на время выполнения отчёта (в смысле держать значение в переменной просто)? Если можно, то каким образом?
Суть идеи понял, как раз то, что нужно, меньше головняка будет при постоении условий. Подскажи плиз, в какую сторону хоть копать, чтобы склепать дату-время воедино?

Последний раз редактировалось w1zard, 18.11.2008 в 00:26.
Ответить с цитированием
  #6  
Старый 18.11.2008, 01:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Попробуй их просто сложить.
Если у тебя репорт расчитывается в дельфи, то просто FieldByName('DATE_BEGIN').AsDateTime + FielsByName('TIME_BEGIN').AsDateTime
Получишь тип TDateTime, который и будешь сравнивать.
Ответить с цитированием
  #7  
Старый 18.11.2008, 01:05
w1zard w1zard вне форума
Прохожий
 
Регистрация: 04.07.2008
Сообщения: 26
Репутация: 10
По умолчанию

lmikle, огромное спасибо, ща буду сношаться с этими датами, будь они неладны.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025