![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с датами в Access. Совет [D6, D7, Paradox, Access]
malamba © (2004-11-08 11:23:00)Пусть меня заклеймят модераторы, хочу просто выложить свои наблюдения за поведением даты при SQL запросах r Accessy.
пример: SELECT * FROM table WHERE дата BETWEEN дата1 AND дата2
1.если использовать простой запрос (SQL.Add(Text)), то следует использовать конструкцию
'WHERE дата BETWEEN #1/1/2004# AND #12/31/2004#'
дата - в формате #месяц/число/год#
2. если использовать параметры
(SELECT * FROM table WHERE дата BETWEEN :pдата1 AND :pдата2)
то следует использовать
Parameters.ParamValues['pдата1']:='1.1.2004';
Parameters.ParamValues['pдата2']:='31.12.2004';
тип параметра - не установлен (unknown). Дата в своем обычном виде.
Ну не паразиты ли ?
sniknik (2004-11-08 11:43:00) [1]кажущаяся проблема в том что не совмещены (и не могут со 100% вероятностью) национальные настройки преобразования дат в системе/jet/delphi
поэтому и не нужно использовать строковых заданий дат (или хотя бы использовать независяшие от национальных настроек форматы, у которых единственное немного скорость на преобразовании/передаче падает в сравнении с оригинальным типом).
даже если все совместить (на старте программы например) то где гарантия что другая паралельно работающая прога (тобой же написанная ;о)) не поменяет? и тогда один запрос пройдет второй сглючит.... "чудо!!! насколько глючный этот аксесс" ;о))
sniknik (2004-11-08 11:35:00) [2]а в чем проблема? по моим наблюдениям и
WHERE дата BETWEEN #1/1/2004# AND #31/12/2004#
тоже будет работать (и правильно в этом случае)
> 2. если использовать параметры
то у тебя неправильно (нафига строка?),
> то следует использовать
не следует!!! надо задавать именно дату.