Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 15:02   #31
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет. это же тоже самое!!


попробуйте вот так:
Код:
var tm1, tm2 : TDateTime;


ADOQuery1.SQL.Text := 'select * from base' +s+ 'AND Date_posting BETWEEN :date1 AND :date2'+' and Time_posting BETWEEN :time1 AND :time2';

  tm1 := frac(RzDateTimeEdit1.Time);
  ShowMessage(FormatDateTime('dd.mm.yyyy hh:MM:ss', tm1))

  tm2 := frac(RzDateTimeEdit2.Time);
  ShowMessage(FormatDateTime('dd.mm.yyyy hh:MM:ss', tm2))

  ADOQuery1.Params.ParamByName('time1').Value:= tm1;
  ADOQuery1.Params.ParamByName('time2').Value:= tm2;

  d1:=Trunc(DateTimePicker1.Date);
  d2:=Trunc(DateTimePicker2.Date);
  ADOQuery1.Params.ParamByName('date1').Value:=d1;
  ADOQuery1.Params.ParamByName('date2').Value:=d2;
ShowMessage просто для отладки. Потом эти строчки удалите!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2013, 15:17   #32
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Хотя, возможно,что это всё тоже фигня!
Кто придумал дату и время в таблице хранить в РАЗНЫХ полях?!
Вы же понимаете, что если укажете дату с 1.03.2013 до 31.03.2013
и время time1 = 6:00 и time2 = 11:00
то выберутся все записи, гда дата от 1 марта до 31 марта, но у которых время от 6 до 11 часов. т.е. запись где дата = 2.03.2013 и время 4 утра - НЕ ВЫБЕРЕТСЯ!
Если это то, что Вам и нужно - тогда поздравляю, всё будет работать как Вам надо.

Если же нужно, чтобы попали все записи от 1 марта 2013 с 6 утра и до 31 марта 11 часов - тогда запрос нужно переделывать!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2013, 15:22   #33
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Подозреваю, что это не то. Это вернет записи с датой скажем с 01.01.2013 до 01.10.2013 у которых время с 13:00:00 до 17:00:00. А ТС, если не ошибась, нужно вернуть записи с 01.01.2013 13:00:00 до 01.10.2013 17:00:00. Если это так, то
Код:
((Date_posting=:date1 AND Time_posting>=:time1) OR Date_posting>:date1) AND
((Date_posting=:date2 AND Time_posting<=:time2) OR Date_posting<:date2)
или в запросе объединить вычисляемым datetime-выражением Date_posting и Time_posting, ну и BETWEEN

PS Сергей о том же
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 03.04.2013 в 15:27.
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 15:27   #34
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Действительно это не то мне нужно чтобы попали все записи от 1 марта 2013 с 6 утра и до 31 марта 11 часов

Всем спасибо. Отдельное спасибо Сергею и Аватару. Аватар
Код:
((Date_posting=:date1 AND Time_posting>=:time1) OR Date_posting>:date1) AND
((Date_posting=:date2 AND Time_posting<=:time2) OR Date_posting<:date2)
то что надо.

Последний раз редактировалось Aleksandr; 03.04.2013 в 15:39.
Aleksandr вне форума Ответить с цитированием
Старый 03.04.2013, 15:41   #35
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Кто придумал дату и время в таблице хранить в РАЗНЫХ полях?!
это я спросил у ТС еще в #7 и продолжил в #24, но товарищ неадекват оказался. ну бывает чо..
eval вне форума Ответить с цитированием
Старый 03.04.2013, 15:51   #36
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
((Date_posting=:date1 AND Time_posting>=:time1) OR Date_posting>:date1) AND
((Date_posting=:date2 AND Time_posting<=:time2) OR Date_posting<:date2)
ужас в ночи, дату со временем сравнить надо битвином или на болше-равно меньше-равно в зависимости от задачи
eval вне форума Ответить с цитированием
Старый 03.04.2013, 16:02   #37
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ужас в ночи
Предложите свой вариант для MySQL для объединения даты с одного datetime с временем их другого, тогда и битвин можно приспособить. Можно конечно, но мне не светит в функциях даты-времени копаться. Но будет такой же ужас. Пока ТС не сделает нормальную структуру в таблице
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 03.04.2013 в 16:07.
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 16:11   #38
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

чего там копаться?
http://dev.mysql.com/doc/refman/5.5/...functions.html
и никакого ужаса, а вот ТС -у бесполезно говорить, он на своей волне.
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается сделать поиск по дате и в интервале дат. Aleksandr БД в Delphi 5 11.03.2013 21:42
WinAPI синхронизация времени с сайтом точного времени. Walker32 Помощь студентам 4 07.06.2012 18:59
Рекурсивный поиск файлов в интервале дат(без времени,только день,месяц и год)) AlexKhol Общие вопросы Delphi 3 04.02.2012 16:15
продифференцировать на интервале IvaniuS Помощь студентам 7 21.04.2011 14:12
ПОИСК В БД .DBF ПО ВРЕМЕНИ И ДАТЕ В ПОЛЕ ТИПА DATETIME ЛисЁНЫШ БД в Delphi 10 05.06.2010 21:02