![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять даты [D5, Paradox]
oleg krechetov © (2004-09-24 11:15:00)Доброго времени суток Всем!
Есть табличка Paradox вида:
Dates|Chan1|Chan2|
Dates (datetime)
Chan1 и Chan2 (числовые)
Как выбрать все данные за вчерашний день.
и еще
Как выбрать все данные за последний час.
Может кто знает, подскажите.
Спасибо.
sniknik (2004-09-24 14:20:00) [1]> Почему вот это:
...
> лучше чем вот это:
...
задаеш значение параметру раньше чем его обьявляеш, чюдо что вообще работает (вероятно запрос уже дан, в конманент внесен, и параметр определен).
и второе четкое сравнение (=) на нечеткие данные (datataime), почему работать может уже в [10] обьяснял.
в сумме все работало...
2-я ошибка самоуничтожилась ;о), не надейся что всегда так везти будет.
> А вот по времени как?
также как в [2] но выраженое в дельфевских функциях. ;о)
Johnmen (2004-09-24 13:30:00) [2]>sniknik © (24.09.04 13:21) [12]
Дело в другом. Да и я немного прогнал вначале.
>Как выбрать все данные за вчерашний день.
Сегодняшний день ему не нужен...Т.е.<Date
oleg krechetov (2004-09-24 13:22:00) [3]Да я переделал сделал отдельно поле даты и поле времени.
По дате сделал как в [10] все прекрасно рабодает.
А вот по времени как?
Почему вот это:
Query_Param_Days.Close;
Query_Param_Days.SQL.Text:='Select * From ReadPribor Where Dates BETWEEN :p_datetime1 AND :p_datetime2';
Query_Param_Days.ParamByName('p_datetime1').AsDateTime:= Date()-1;
Query_Param_Days.ParamByName('p_datetime2').AsDateTime:= Date();
Query_Param_Days.Open;
лучше чем вот это:
Query_Param_Days.Close;
Query_Param_Days.ParamByName('p_datetime').AsDateTime:= Date-1;
Query_Param_Days.SQL.Text:='Select * From ReadPribor Where Dates = :p_datetime';
Query_Param_Days.Open;
sniknik (2004-09-24 13:21:00) [4]> А у тебя тоже ошибка...:)
?
думаеш Date() на самом деле со временем результат дает? (возможно на D5, на D7 "чистая" дата)
а в остальном (?), вроде все верно. где?
Johnmen (2004-09-24 13:14:00) [5]>sniknik © (24.09.04 13:11) [10]
А у тебя тоже ошибка...:)
sniknik (2004-09-24 13:11:00) [6]Query_Param_Days.Close;
Query_Param_Days.SQL.Text:='Select * From ReadPribor Where Dates BETWEEN :p_datetime1 AND :p_datetime2';
Query_Param_Days.ParamByName('p_datetime1').AsDateTime:= Date()-1;
Query_Param_Days.ParamByName('p_datetime2').AsDateTime:= Date();
Query_Param_Days.Open;
так будет лучше, поверь.
кстати если вдруг случилось чудо и с параметром вначале оно у тебя сработало и выдавало нужные результаты то либо у тебя тип поля не date timeлибо в данных голые даты.
Johnmen (2004-09-24 12:59:00) [7]Да и по дате неправильно делаешь...
oleg krechetov (2004-09-24 12:57:00) [8]По дате делаю так:
Query_Param_Days.Close;
Query_Param_Days.ParamByName('p_datetime').AsDateTime:= Date-1;
Query_Param_Days.SQL.Text:='Select * From ReadPribor Where Dates = :p_datetime';
Query_Param_Days.Open;
А по времени как?
Johnmen (2004-09-24 12:42:00) [9]А как "никак" ? Всё же аналогично...
oleg krechetov (2004-09-24 12:40:00) [10]С датами все получилось, а вот со временем никак.
sniknik (2004-09-24 12:13:00) [11]> SQL Explorer ругается, говорит:
естественно... ты же небось в родные драйвера полез? а это для jet-а (у тебя же движок не указан). (теоретически должно сработать и у тебя, если в ехплорере выбрать(создать) алиас на ODBC мелкософт парадокс драйвер)
с родным см лучше на пример от Johnmen © (24.09.04 11:36) [1]
Anatoly Podgoretsky (2004-09-24 12:10:00) [12]Используй параметры, как в примере [1]
oleg krechetov (2004-09-24 11:58:00) [13]SQL Explorer ругается, говорит:
Invalid use of keyword : Date()-1 AND Date() и
Invalid use of keyword : Date()+TimeSerial(Hour(Time()), 0, 0)
Может кавычки где нужны, или чтото другое.
sniknik (2004-09-24 11:39:00) [14]за вчерашний день
SELECT * FROM ATab WHERE Dat BETWEEN Date()-1 AND Date()
за последний час
SELECT * FROM ATab WHERE Dat >= Date()+TimeSerial(Hour(Time()), 0, 0)
Johnmen (2004-09-24 11:36:00) [15]Запрос с параметром
...WHERE Dates BETWEEN :D1 AND :D2
Значения параметров вычисляешь в своем приложении.