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

Применяется к
Access для 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 Возвращает элементы с завтрашней датой. Если сегодняшняя дата — 2 февраля 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([SalesDate]) = Year(Date()) and Month([SalesDate]) <= Month(Date()) and Day([SalesDate]) <= Day (Date()) Возвращает элементы с датами между 1 января текущего года и текущей датой. Если сегодняшняя дата — 02.02.2012, вы увидите элементы за период с 1 января 2012 г. по 02.02.2012 г.
Содержат прошедшую дату < Date() Возвращает элементы с датами до текущей.
Содержат будущую дату > Date() Возвращает элементы с датами после текущей.

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

Для выборки элементов, которые... Используйте это условие Результат запроса
Точно соответствуют значению, например 02.02.2012 #02.02.2012# Возвращает только элементы с датой 2 февраля 2012 г.
Не соответствуют значению, например 02.02.2012 Not #02.02.2012# Возвращает элементы с датой, отличающейся от 2 февраля 2012 г.
Содержат значения, которые предшествуют определенной дате, например 02.02.2012 < #2/2/2012# Возвращает элементы с датой до 2 февраля 2012 г.
Чтобы просмотреть элементы с датой 2 февраля 2012 г. или раньше, используйте <оператор = вместо < оператора .
Содержат значения, которые следуют за определенной датой, например 02.02.2012 > #2/2/2012# Возвращает элементы с датой после 2 февраля 2012 г.
Чтобы просмотреть элементы с датой 2 февраля 2012 г. или позже, используйте >оператор = вместо > оператора .
Содержат значения, которые входят в определенный диапазон дат >No 2/2/2012# и <#04.02.2012# Возвращает элементы с датой между 2 февраля 2012 г. и 4 февраля 2012 г.
Примечание: Оператор Between также можно использовать для фильтрации диапазона значений, включая конечные точки. Например, между #2/2/2/2012# и #4/04/2012# совпадает с >=#2/2/2/2012# и <=#04.02.2012#.
Содержат даты, которые не входят в определенный диапазон <No 2/2/2012# или >#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 Возвращает записи, в которых дата была введена.

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