|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Как отфильтровать?
Имеется база данных в которой имеется поле SimpleTime форматом DateTime. база данных крутится на SQL Server. Данное поле хранится в следующем виде 2011-07-05 00:00:00.000. SQL запросом в менеджере фильровать нет надобности нужная дата и время отбирается следующим образом.
SELECT * FROM Test.dbo.Data_183608_8_0_8 WHERE SimpleTime BETWEEN '20110705 13:57:09.000' AND '20110705 13:57:59.000' Для делфи чтоб отобрать дату я написал следущие: Код:
procedure TForm1.Button6Click(Sender: TObject); Var Filter:String; begin Filter := 'SimpleTime>='''+DateToStr(DateTimePicker1.Date) +''''+' and '+'SimpleTime<='''+DateToStr(DateTimePicker2.Date)+'''' ; ADOQuery1.Active:=False; ADOQuery1.Filter := Filter; ADOQuery1.Filtered := true; ADOQuery1.Active := true; end; Запрос содержашийся в ADOQuery1: SELECT * FROM Test.dbo.Data_183608_8_0_8 Все прекрасно работает но необходимость состоит в следующем что может понадобится отобрать данные за один день за один час. Подскажите пожалуйста что нужно дописать или переделать а то не как не получается. Последний раз редактировалось Admin, 06.07.2011 в 11:43. |
#2
|
||||
|
||||
Так а не вариант вот к этому Filter := 'SimpleTime>='''+DateToStr(DateTimePicker1.Date) подписать еще вот это например +' 12:39:00.000'
там обрати внимание через пробел |
#3
|
|||
|
|||
Надо чтоб как нето дата в эдите что ли вводилась пользоватилем или еще каким способом не буду же я каждый раз код переписывать чтоб отчеты снять.
|
#4
|
|||
|
|||
У компонента DateTimePicker есть два режима ввода: даты (dkDate) и времени (dkTime).
Разместить на форме четыре таких компонента, где по парам вводятся даты и время задаваемого периода. Затем в запрос подставить эти значения. Только делать это лучше не через свойства Filter, а в самом запросе. Либо параметрами, либо непосредственно подставляя значения даты и времени в текст запроса. |
#5
|
||||
|
||||
Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
Написал вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject); Var Filter:String; begin Filter := 'SimpleTime>='''+DateTimeToStr(DateTimePicker1.DateTime) +''''+' and '+'SimpleTime<='''+DateTimeToStr(DateTimePicker2.DateTime)+'''' ; Filter := 'SimpleTime>='''+DateTimeToStr(DateTimePicker3.DateTime) +''''+' and '+'SimpleTime<='''+DateTimeToStr(DateTimePicker4.DateTime)+'''' ; ADOQuery1.Active:=False; ADOQuery1.Filter := Filter; ADOQuery1.Filtered := true; ADOQuery1.Active := true; DateTimePicker1 06.07.2011 В DateTimePicker2 06.07.2011 В DateTimePicker3 12:56:26 В DateTimePicker4 13:00:00 Вобще не чего не выдает. В запрос вабще не понимаю как данные закинуть с эдитов дапустим. Последний раз редактировалось Admin, 06.07.2011 в 11:43. |
#7
|
||||
|
||||
Цитата:
|