![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка по дате
jack128 © (2003-08-04 14:39:00)День добрый
Нужно выбрать из базы архивные данные за период, определенный пользователем.
Делаю так:
в ibquery1.sql. text = "select * from MULTICAL_CDE_ARHIVE ma
where ma.datetime >= :DATE1 and
ma.datetime <= :DATE2 and
order by datetime
"
procedure TForm1.UpdateQuery1(Sender: TObject);
begin
IbQuery1.Close;
IBQuery1.ParamByName("Date1").AsDateTime := DateTimePicker1.date;
IBQuery1.ParamByName("Date2").AsDateTime := DateTimePicker2.date;
ibquery1.Open;
end;
так вот, проблема в том, что набор данных начинается не с date1, а с date1 + 1(на один день позже).
Причем, как я понял, этот эффект дает DateTimePicker. Если написать, например ( "Date1")День добрый
Нужно выбрать из базы архивные данные за период, определенный пользователем.
Делаю так:
в ibquery1.sql. text = "select * from MULTICAL_CDE_ARHIVE ma
where ma.datetime >= :DATE1 and
ma.datetime <= :DATE2 and
order by datetime
"
procedure TForm1.UpdateQuery1(Sender: TObject);
begin
IbQuery1.Close;
IBQuery1.ParamByName("Date1").AsDateTime := DateTimePicker1.date;
IBQuery1.ParamByName("Date2").AsDateTime := DateTimePicker2.date;
ibquery1.Open;
end;
так вот, проблема в том, что набор данных начинается не с date1, а с date1 + 1(на один день позже).
Причем, как я понял, этот эффект дает DateTimePicker. Если написать, например IBQuery1.ParamByName("Date1").AsDateTime := EncodeDate(2003, 7, 4), то все работает нормально...
Как решить проблему?
jack128 (2003-08-04 16:22:00) [1]
> Никакого бреда. Свойство Date содержит не только дату, но
> и время.
По вашему это не бред? ;-)
А так - все понятно, всем спасибо.
Johnmen (2003-08-04 15:36:00) [2]
>jack128 © (04.08.03 15:01)
Никакого бреда. Свойство Date содержит не только дату, но и время. Значит делай HSolo © (04.08.03 15:18) пункт 2.
Anatoly Podgoretsky (2003-08-04 15:27:00) [3]
ShowMeassage(DateTimeToStr(DateTimePicker1.date))
Mike1 Kouzmine1 (2003-08-04 15:24:00) [4]
DateTimePicker.Date
HSolo (2003-08-04 15:18:00) [5]
1. Что В ТОЧНОСТИ у Вас лежит в DateTimePicker1.datetime? Какая дата и какое время?
2. А так:
IBQuery1.ParamByName("Date1").AsDateTime := Trunc(DateTimePicker1.datetime);
не пойдет?
Mike1 Kouzmine1 (2003-08-04 15:13:00) [6]
Бред. Пикером пользуюсь. Без проблем.
jack128 (2003-08-04 15:01:00) [7]
Да, точно виноват глючный пикер
вот такой код рабоает на ура..
var year, month, day : word;
begin
IbQuery1.Close;
DecodeDate(DateTimePicker1.datetime, Year, Month, Day);
IBQuery1.ParamByName("Date1").AsDateTime := EncodeDate(Year, Month, Day);
ibquery1.Open;
end;
Но согласитесь - это ж бред сивой кобылы!!!!
jack128 (2003-08-04 14:58:00) [8]
> странно, а если between :date1 and :date2?
тоже самое..
Я думаю тут дело именно в DateTimePicker"e
Может конечно в компонентах доступа(ibx), но наврятли..
Кстати IBExpert нармально отрабатывает запрос...
Mike1 Kouzmine1 (2003-08-04 14:53:00) [9]
странно, а если between :date1 and :date2?