|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
ADOQuery1 Фильтрация по времени
Доброго дня, подскажите формат времени.
Есть таблица в Access, в таблице есть поле DATE с записью типа 14.03.2017 09:54:12 ВОТ ТАК ФИЛЬТР РАБОТАЕТ Код:
ADOQuery1.SQL.TEXT:='SELECT * FROM SES WHERE DONE = FALSE AND DATE > '+Fdate(now-0.0035); // FDATE - ПЕРЕВОДИТ В ФОРМАТ #YYYY-MM-DD# В каком формате подать еще и время? #yyyy-mm-dd hh:nn:ss# - не получается. Мне нужно вывести записи созданные в течение последних 5 минут. |
#2
|
|||
|
|||
ПОКА РЕШИЛ ТАК
Код:
ado1.SQL.Text:='SELECT * FROM SES WHERE DONE = FALSE'; ADO1.Open; ado1.Filter:='DATE > '+datetostr (now-0.01); ado1.Filtered:=true; ТАК НЕ РАБОТАЕТ Последний раз редактировалось draginimp, 15.03.2017 в 15:27. |
#3
|
|||
|
|||
Пользуйся параметрами. Пусть Delphi работает за тебя.
Т.е. 1. Запрос делаем статическим, т.е. обновлять ado1.SQL не надо. Просто внести туда запрос следующего вида: Код:
SELECT * FROM SES WHERE DONE = FALSE AND DATE > :FiveMins 3. В коде пишем примерно так: Код:
ado1.Active := False; ado1.Parameters.ParamByName('FiveMins').AsDateTime := now-5*(1.0/24/60); // 1/24/60 - это 1 минута ado1.Active := True; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
draginimp (16.03.2017)
|