Microsoft Access SQL Дата Сравнение - PullRequest
0 голосов
/ 09 июля 2009

Я использую Access 2007.

Мне нужно вернуть строки с полем даты / времени, попадающим в диапазон дат, который должен быть указан в параметрах запроса.

Следующее не выдает ошибку, но не работает.

SELECT FIELDS FROM FOO
WHERE (FOO.CREATED_DTG BETWEEN [START_DTG] And [END_DTG]);

Аналогично, это не работает для меня

SELECT FIELDS FROM FOO
WHERE (FOO.CREATED_DTG >= [START_DTG] And FOO.CREATED_DTG < [END_DTG]);

Как мне заставить это работать?

Обновление: использование CDate, похоже, не имеет значения.

Ответы [ 5 ]

2 голосов
/ 09 июля 2009

BLAH - это имя поля или таблицы? Когда вы выбираете BLAH, я представляю, что он называет поле, но тогда BLAH.CREATED_DTG не имеет смысла - вы имеете в виду FOO.CREATED_DTG случайность?

1 голос
/ 10 июля 2009

Поля [START____DTG] и [END____DTG] находятся в таблице FOO, или это параметры? Если они являются параметрами, то вам необходимо объявить их тип, чтобы получить подтверждение входных значений. Если это так, вы должны добавить это перед первой строкой вашего оператора SELECT:

PARAMETERS [START_DTG] DateTime, [END_DTG] DateTime; 
1 голос
/ 09 июля 2009

Вы уверены, что поле CREATED_DTG имеет формат даты?

Вы пробовали

WHERE (FOO.CREATED_DTG BETWEEN #01/01/1971# And #07/07/2009#);

(или что-то подходящее в отношении дат - дело не в параметре)

1 голос
/ 09 июля 2009

также у вас есть <= и> = ... вы, вероятно, хотите = только для одного из этих операторов.

1 голос
/ 09 июля 2009

Ваши даты начинаются и заканчиваются #?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...