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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 12:29   #21
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

посмотрите пожалуйста код
Код:
ADOQuery1.SQL.Text := 'select * from base where Time_posting BETWEEN (Time_posting Like'+QuotedStr('%'+RzDateTimeEdit1.Text+'%')+') and (Time_posting Like'+QuotedStr('%'+RzDateTimeEdit2.Text+'%')+')'  ;
Aleksandr вне форума Ответить с цитированием
Старый 03.04.2013, 12:44   #22
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

и к чему такие грабли?
что требуется добиться этим кодом?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 03.04.2013, 12:53   #23
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

вывести значения в интервале времени (где RzDateTimeEdit1 начальное значение времени RzDateTimeEdit2 конечное значение времени).
Aleksandr вне форума Ответить с цитированием
Старый 03.04.2013, 13:00   #24
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

хоть понимаете, что такое "интервал времени", похоже что нет, а надо было начать с того чтобы в этом разобраться.
eval вне форума Ответить с цитированием
Старый 03.04.2013, 13:06   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Aleksandr, поймите, что Вы пытаетесь смешать несмешиваемое!!

есть оператор LIKE. Он позволяет отбирать данные по совпадению строк (в том числе, используя подстановочные знаки)

есть оператор BETWEEN
Код:
  что-то BETWEEN Значение1 and Значение2
выбирает все данные, которые попадают в диапазон от значения1 до значения2

Так, как Вы их хотите смешать, так НЕ ПОЛУЧИТСЯ!

Ещё раз формализуйте то, что Вы хотите добится, после этого напишите корректный код, который формирует корректный SQL запрос.

вам, как уже было написано неоднократнейше, нужно что-то вроде:
Код:
ADOQuery1.SQL.Text := 'select * from base where Time_posting BETWEEN :param1 and :param2';
ADOQuery1.Params.ParamByName('param1').Value := RzDateTimeEdit1.Date; {или RzDateTimeEdit1.DateTime}
ADOQuery1.Params.ParamByName('param2').Value := RzDateTimeEdit2.Date; {или RzDateTimeEdit2.DateTime}
интересно, сколько ещё раз надо повторить этот код, чтобы Вы на него обратили внимание?!

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

Выходит мне лучше всего делать через параметры и каким-то образом убрать из времени дату.
получается в RzDateTimeEdit1.Date указывать сразу и дату и время
У меня время в базе хранится в виде 1899-12-30 19:22:25

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

Цитата:
убрать из времени дату
задаётся джентльмены это комедия
eval вне форума Ответить с цитированием
Старый 03.04.2013, 14:13   #28
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Сделал вот таким образом
Код:
 DateRep :='1899-12-30 '+TimeToStr(RzDateTimeEdit1.Time);
   DateRep2 := '1899-12-30 '+TimeToStr(RzDateTimeEdit2.Time);

  ADOQuery1.SQL.Text := 'select * from base where Time_posting BETWEEN :date1 AND :date2';
  ADOQuery1.Params.ParamByName('date1').Value:=DateRep;
  ADOQuery1.Params.ParamByName('date2').Value:=DateRep2;
Aleksandr вне форума Ответить с цитированием
Старый 03.04.2013, 14:48   #29
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не обижайтесь, но Вы плохо сделали...
гарантирую, что работать будет, но совсем не так, как Вы того ожидаете!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2013, 14:54   #30
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

А как лучше? Сделал еще вот так.
Код:
 
case Combobox2.ItemIndex of
    0: s:=  ' where Massa= "'+RzEdit1.text+'"';
   1: s:=  ' where Massa<> "'+RzEdit1.text+'"';
   2: s:=  ' where Massa> "'+RzEdit1.text+'"';
   3: s:=  ' where Massa>= "'+RzEdit1.text+'"';
   4: s:=  ' where Massa< "'+RzEdit1.text+'"';
   5: s:=  ' where Massa<= "'+RzEdit1.text+'"';
 //  6: s:=  ' where Massa "'+RzEdit1.text+'"'+'%';
   //7: s:=  ' where Massa Like % "'+RzEdit1.text+'"'+'%';
   7: s:=  ' where Massa Like '+QuotedStr('%'+RzEdit1.Text+'%');
 //  8: s:=  ' where Massa BETWEEN '+RzEdit1.text+' and '+RzEdit2.text;
    end;


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

    DateRep :='1899-12-30 '+TimeToStr(RzDateTimeEdit1.Time);
   DateRep2 := '1899-12-30 '+TimeToStr(RzDateTimeEdit2.Time);

//  ADOQuery1.SQL.Text := 'select * from base where Time_posting BETWEEN :time1 AND :time2';
  ADOQuery1.Params.ParamByName('time1').Value:=DateRep;
  ADOQuery1.Params.ParamByName('time2').Value:=DateRep2;

    d1:=Trunc(DateTimePicker1.Date);
  d2:=Trunc(DateTimePicker2.Date);
  ADOQuery1.Params.ParamByName('date1').Value:=d1;
  ADOQuery1.Params.ParamByName('date2').Value:=d2;
Aleksandr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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