Примеры использования дат в качестве условий в запросах Access
Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Подробнее о создании запросов см. в статье Знакомство с запросами.

Вот несколько общих примеров использования дат в качестве критериев — от простых фильтров дат до более сложных вычислений диапазонов дат. В некоторых из наиболее сложных примеров функции дат в Аccess используются для извлечения различных частей даты, чтобы получить только необходимые результаты.

Примеры использования текущей даты как части условия

Для выборки элементов, которые...

Используйте это условие

Результат запроса

Содержат текущую дату

Date()

Возвращает элементы с текущей датой. Если текущая дата — 02.02.2012, отображаются элементы с датой 2 февраля 2012 г.

Содержат вчерашнюю дату

Date()-1

Возвращает элементы со вчерашней датой. Если текущая дата — 02.02.2012, отображаются элементы с датой 1 февраля 2012 г.

Содержат завтрашнюю дату

Date() + 1

Возвращает элементы с завтрашней датой. Если текущая дата — 02.02.2012, отображаются элементы с датой 3 февраля 2012 г.

Содержат даты, которые приходятся на текущую неделю

DatePart("ww"; [ДатаПродажи]) = DatePart("ww"; Date()) and Year([ДатаПродажи]) = Year(Date())

Возвращает элементы с датами, которые приходятся на текущую неделю. Неделя в Access начинается в воскресенье и заканчивается в субботу.

Содержат даты, которые приходятся на предыдущую неделю

Year([ДатаПродажи])* 53 + DatePart("ww"; [ДатаПродажи]) = Year(Date())* 53 + DatePart("ww"; Date()) - 1

Возвращает элементы с датами, которые приходятся на прошедшую неделю. Неделя в Access начинается в воскресенье и заканчивается в субботу.

Содержат даты, которые приходятся на следующую неделю

Year([ДатаПродажи])* 53+DatePart("ww"; [ДатаПродажи]) = Year(Date())* 53+DatePart("ww"; Date()) + 1

Возвращает элементы с датами, которые приходятся на следующую неделю. Неделя в Access начинается в воскресенье и заканчивается в субботу.

Содержат дату, которая приходится на один из последних 7 дней

Between Date() and Date()-6

Возвращает элементы с датами в течение последних 7 дней. Если текущая дата — 02.02.2012, отображаются элементы за период с 24 января 2012 г. по 2 февраля 2012 г.

Содержат дату, которая приходится на текущий месяц

Year([ДатаПродажи]) = Year(Now()) And Month([ДатаПродажи]) = Month(Now())

Возвращает элементы с датами текущего месяца. Если сегодняшняя дата — 02.02.2012, отображаются элементы с датами в феврале 2012 г.

Содержат дату, которая приходится на предыдущий месяц

Year([ДатаПродажи])* 12 + DatePart("m"; [ДатаПродажи]) = Year(Date())* 12 + DatePart("m"; Date()) - 1

Возвращает элементы с датами предыдущего месяца. Если сегодняшняя дата — 02.02.2012, отображаются элементы с датами января 2012 г.

Содержат дату, которая приходится на следующий месяц

Year([ДатаПродажи])* 12 + DatePart("m"; [ДатаПродажи]) = Year(Date())* 12 + DatePart("m"; Date()) + 1

Возвращает элементы с датами следующего месяца. Если сегодняшняя дата — 02.02.2012, отображаются элементы с датами в марте 2012 г.

Содержат дату, которая попадает в диапазон последних 30 дней или 31 дня

Between Date( ) And DateAdd("M", -1, Date( ))

Возвращает элементы за месяц. Если текущая дата — 02.02.2012, отображаются элементы за период со 2 января 2012 г. по 2 февраля 2012 г.

Содержат дату, которая приходится на текущий квартал

Year([ДатаПродажи]) = Year(Now()) And DatePart("q";[ДатаПродажи]) = DatePart("q"; Now())

Возвращает элементы за текущий квартал. Если текущая дата — 02.02.2012, отображаются элементы за первый квартал 2012 г.

Содержат дату, которая приходится на предыдущий квартал

Year([ДатаПродажи])*4+DatePart("q";[ДатаПродажи]) = Year(Date())*4+DatePart("q";Date())- 1

Возвращает элементы за предыдущий квартал. Если текущая дата — 02.02.2012, отображаются элементы за последний квартал 2011 г.

Содержат дату, которая приходится на следующий квартал

Year([ДатаПродажи])*4+DatePart("q";[ДатаПродажи]) = Year(Date())*4+DatePart("q";Date())+1

Возвращает элементы за следующий квартал. Если текущая дата — 02.02.2012, отображаются элементы за второй квартал 2012 г.

Содержат дату, которая приходится на текущий год

Year([ДатаПродажи]) = Year(Date())

Возвращает элементы за текущий год. Если текущая дата — 02.02.2012, отображаются элементы за 2012 год.

Содержат дату, которая приходится на предыдущий год

Year([ДатаПродажи]) = Year(Date()) - 1

Возвращает элементы за предыдущий год. Если текущая дата — 02.02.2012, отображаются элементы за 2011 год.

Содержат дату, которая приходится на следующий год

Year([ДатаПродажи]) = Year(Date()) + 1

Возвращает элементы с датой в следующем году. Если текущая дата — 02.02.2012, отображаются элементы с датой в 2013 году.

Содержат дату, которая приходится на период с 1 января до текущей даты (элементы с начала года до настоящего момента)

Year([ДатаПродажи]) = Year(Date()) and Month([ДатаПродажи]) <= Month(Date()) and Day([ДатаПродажи]) <= Day (Date())

Возвращает элементы с датами между 1 января текущего года и текущей датой. Если текущая дата — 02.02.2012, отображаются элементы за период с 1 января 2012 г. по 2 февраля 2012 г.

Содержат прошедшую дату

< Date()

Возвращает элементы с датами до текущей.

Содержат будущую дату

> Date()

Возвращает элементы с датами после текущей.

Примеры использования даты, отличной от текущей, или диапазона дат

Для выборки элементов, которые...

Используйте это условие

Результат запроса

Точно соответствуют значению, например 02.02.2012

#02.02.2012#

Возвращает только элементы с датой 2 февраля 2012 г.

Не соответствуют значению, например 02.02.2012

Not #02.02.2012#

Возвращает элементы с датой, отличающейся от 2 февраля 2012 г.

Содержат значения, которые предшествуют определенной дате, например 02.02.2012

< #02.02.2012#

Возвращает элементы с датой до 2 февраля 2012 г.

Чтобы просмотреть элементы с датой не позднее 2 февраля 2012 г., воспользуйтесь оператором <= вместо <.

Содержат значения, которые следуют за определенной датой, например 02.02.2012

> #02.02.2012#

Возвращает элементы с датой после 2 февраля 2012 г.

Чтобы просмотреть элементы с датой после 2 февраля 2012 г., воспользуйтесь оператором >= вместо >.

Содержат значения, которые входят в определенный диапазон дат

>#02.02.2012# and <#04.02.2012#

Возвращает элементы с датой между 2 февраля 2012 г. и 4 февраля 2012 г.

Примечание: Кроме того, для фильтрации по диапазону значений, включая конечные значения, вы можете использовать оператор Between. Например, выражение Between #02.02.2012# and #04.02.2012# идентично выражению >=#02.02.2012# and <=#04.02.2012#.

Содержат даты, которые не входят в определенный диапазон

<#02.02.2012# or >#04.02.2012#

Возвращает элементы с датой до 2 февраля 2012 г. или после 4 февраля 2012 г.

Содержат одну из двух дат, например 02.02.2012 или 03.02.2012

#02.02.2012# or #03.02.2012#

Возвращает элементы с датой 2 февраля 2012 г. или 3 февраля 2012 г.

Содержат по крайней мере одну из нескольких дат

In (#01.02.2012#, #01.03.2012#, #01.04.2012#)

Возвращает элементы с датами 1 февраля 2012 г., 1 марта 2012 г. или 1 апреля 2012 г.

Содержат любой день заданного месяца (вне зависимости от года), например декабря

DatePart("m"; [ДатаПродажи]) = 12

Возвращает элементы с датой в декабре любого года.

Содержат любую дату в пределах заданного квартала (вне зависимости от года), например первого

DatePart("q"; [ДатаПродажи]) = 1

Возвращает элементы с датой в первом квартале любого года.

Фильтр пустых (или отсутствующих) значений

Is Null

Возвращает записи, в которых дата не была введена.

Фильтр непустых значений

Is Not Null

Возвращает записи, в которых дата была введена.

Примеры фильтрации по значениям NULL (отсутствующие) или даты, отличные от NULL

Для выборки элементов, которые...

Используйте это условие

Результат запроса

Фильтр пустых (или отсутствующих) значений

Is Null

Возвращает записи, в которых дата не была введена.

Фильтр непустых значений

Is Not Null

Возвращает записи, в которых дата была введена.

Возникли проблемы с условиями для дат? Получаете не те результаты, которые ожидаете? См. статью В моем запросе не работают условия для дат.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.