Примеры использования дат в качестве условий в запросах 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 Возвращает элементы с завтрашней датой. Если текущая дата — 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 < #2/2/2012# Возвращает элементы с датой до 2 февраля 2012 г.
Для просмотра элементов с датой 2 февраля 2012 года или раньше используйте <оператор = вместо < него.
Содержат значения, которые следуют за определенной датой, например 02.02.2012 > #2/2/2012# Возвращает элементы с датой после 2 февраля 2012 г.
Для просмотра элементов с датой 2 февраля 2012 > г. или позже используйте оператор = вместо > него.
Содержат значения, которые входят в определенный диапазон дат >#02.02.2012# и <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# или >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 Возвращает записи, в которых дата была введена.

Примеры фильтрации нулевых (пустых) или ненулевых дат

Для выборки элементов, которые... Используйте это условие Результат запроса
Фильтр пустых (или отсутствующих) значений Is Null Возвращает записи, в которых дата не была введена.
Фильтр непустых значений Is Not Null Возвращает записи, в которых дата была введена.

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