При использовании даты в качестве условия в запросе Access вы можете обнаружить, что полученные результаты не соответствуют ожидаемым.
В указанном выше запросе условие >=#1/1/2005#<#1/1/2010# не будет работать, поскольку оно является недопустимым. Запрос выполняется, но результат, скорее всего, будет неверным. Данное условие требует наличия оператора "And" ("И") между датами. Указанное ниже условие с оператором "And" ("И") даст ожидаемые результаты:
Чтобы упростить работу, вместо знаков "больше, чем","меньше, чем" или "равно", с датами можно использовать операторы "Between" и "And" для осуществления такой же проверки, например:
Между #1/1/2005# И #1/1/2010#
Обратили внимание на символы # (знаки решетки), стоящие по краям дат? Когда вы вводите известную для Access дату, она автоматически заключается в символы #.
Примеры условий для дат
Здесь показаны несколько рабочих условий и одно нерабочее.
Условие | Возврат записей с: |
---|---|
>12/31/10 |
Даты, начиная с 31/12/2010. |
<=6/1/2014 |
Даты не позднее 1/6/2014. |
8/25/13 |
Точная дата 25/8/13. |
Between 9/1 And 12/31/15 |
Даты, начиная с 1-го сентября текущего года и до 31-го декабря 2015 года. |
>3/31/13<7/1/13 |
Все даты. Условию не хватает оператора "And" ("И"), поэтому фильтрация результатов не происходит. |
Between 3/1/10 And 1/1/05 |
Даты, начиная с 1/1/05, и не позднее 1/3/10. Тот факт, что более поздняя дата была введена перед более ранней, не имеет значения. |
Примеры форматов дат, распознаваемых Access
Здесь представлены некоторые из большого количества форматов дат, которые вы можете использовать в ячейке Условия запроса:
Формат | Пример |
---|---|
мм/дд/гггг |
10/5/2013 |
мм/дд |
10/5 Access использует текущий год, если не указан другой. |
дд-ммм-гггг |
5-окт-2013 |
м-д-гггг |
3-7-1990 |
Чтобы узнать подробнее о способах использования дат в качестве критериев запроса, см. статью Примеры использования дат в качестве критериев в запросах Access.