Подробнее о создании запросов см. в статье Знакомство с запросами.
Вот несколько общих примеров использования дат в качестве критериев — от простых фильтров дат до более сложных вычислений диапазонов дат. В некоторых из наиболее сложных примеров функции дат в А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 |
Возвращает записи, в которых дата была введена. |
Возникли проблемы с условиями для дат? Получаете не те результаты, которые ожидаете? См. статью В моем запросе не работают условия для дат.