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