Как сделать даты в access чтобы сама
Перейти к содержимому

Как сделать даты в access чтобы сама

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает элементы с завтрашней датой. Если текущая дата — 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 г.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает элементы с датой до 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Форматирование поля даты и времени

Типы данных даты и времени имеют широкий спектр форматов в соответствии с уникальными обстоятельствами. При форматировании можно выбрать три варианта: сохранить форматы по умолчанию, применить предопределенный формат или создать пользовательский формат. При применении формата к полю таблицы тот же формат автоматически применяется к любой форме или элементу управления отчета, которые впоследствии привязываются к данному полю таблицы. Форматирование изменяет только способ отображения данных и не влияет на то, как хранятся данные и как пользователи могут вводить данные.

В этой статье

  • Обзор форматов даты и времени
  • Применение предопределенного формата
  • Примеры стандартных форматов
  • Применение настраиваемого формата
  • Примеры пользовательских форматов
  • Символы пользовательского формата

Обзор форматов даты и времени

В Access автоматически отображаются дата и время в формате общей даты и длительного времени. Даты отображаются как, мм/дд/гггг в США и как, дд/мм/гггг за пределами США, где мм — месяц, дд — день, а гггг — год. Время отображается как , чч:мм:сс AM/PM, где чч — час, мм — минуты, а сс — секунды.

Эти автоматические форматы дат и времени зависят от географического расположения, указанного в параметре «Региональные и языковые параметры Microsoft Windows» на компьютере. Например, в Европе и во многих частях Азии в зависимости от вашего расположения вы можете увидеть дату и время: 28.11.2018 12:07:12 или 28/11/2018 12:07:12 PM. В США вы увидите 28.11.2018 12:07:12.

Эти предопределенные форматы можно изменить с помощью пользовательских форматов отображения. Например, можно ввести дату в европейском формате, например 28.11.2018, и в таблице, форме или отчете отображается значение 28.11.2018. Настраиваемый формат, который вы выберете, не повлияет на способ ввода данных и способ хранения данных в Access.

Access автоматически обеспечивает определенный уровень проверки данных, связанный с форматированием даты и времени. Например, если ввести недопустимую дату, например 32.11.2018, появится сообщение, и вы сможете ввести новое значение или преобразовать поле из типа данных Date/Time в тип данных Text. Допустимые значения дат варьируются от –657 434 (1 января 100 г. н.э.) до 2 958 465 (31 декабря 9999 г.). Допустимые значения времени варьируются от .0 до .9999 или 23:59:59.

Если вы хотите ограничить ввод даты и времени в определенном формате, используйте маску ввода. Например, если вы применили маску ввода для ввода дат в европейском формате, кто-то, кто вводит данные в вашей базе данных, не сможет ввести даты в других форматах. Маски ввода можно применять к полям в таблицах, результирующих наборах запросов, а также к элементам управления в формах и отчетах. Дополнительные сведения см. в разделе Управление форматами ввода данных с помощью масок ввода.

Применение предопределенного формата

Access предоставляет несколько предопределенных форматов для данных даты и времени.

  1. Откройте таблицу в режиме Конструктор.
  2. В верхней части сетки конструктора выберите поле Дата и время, которое требуется отформатировать.
  3. В разделе Свойства поля щелкните стрелку в поле свойства Формат и выберите формат в раскрывающемся списке.
  4. После выбора формата появится кнопка Параметры обновления свойств и позволяет применить новый формат к любым другим полям таблицы и элементам управления формы, которые логически наследуют его. Чтобы применить изменения к базе данных, щелкните смарт-тег и выберите команду Обновить формат везде, где используется. В этом случае имя поля — это имя поля даты и времени.
  5. Чтобы применить изменения ко всей базе данных, когда откроется диалоговое окно Свойства обновления и отображаются формы и другие объекты, которые наследуют новый формат. Нажмите Да. Дополнительные сведения см. в разделе Распространение свойства поля.
  6. Сохраните изменения и переключитесь в режим таблицы, чтобы узнать, соответствует ли формат вашим потребностям.

Примечание: Новые формы, отчеты или представления, создаваемые на основе этой таблицы, получают форматирование таблицы, но его можно переопределить в форме, отчете или представлении, не изменяя форматирование таблицы.

В форме или отчете

Изображение окна свойств с раскрывающимся списком свойства

  1. Откройте форму или представление макета отчета или представление конструктора.
  2. Поместите указатель в текстовое поле с указанием даты и времени.
  3. Нажмите клавишу F4, чтобы отобразить страницу свойств.
  4. Задайте для свойства Format значение одного из стандартных форматов даты.

  1. Откройте запрос в режиме конструктора.
  2. Щелкните правой кнопкой мыши поле даты и выберите пункт Свойства.
  3. На странице свойств выберите нужный формат в списке Свойства Формат .

В выражении

  • Используйте функцию FormatDateTime для форматирования значения даты в один из нескольких предопределенных форматов. Это может оказаться полезным, если вы работаете в области, где требуется выражение, например макрос или запрос.

Примеры стандартных форматов

Полный формат даты

(по умолчанию) Отображает значения даты в виде чисел, а значения времени — часы, минуты и секунды, за которыми следует AM или PM. Для обоих типов значений Access использует разделители даты и времени, указанные в региональных параметрах Windows. Если у значения нет компонента времени, Access отображает только дату. Если значение не содержит компонента даты, Access отображает только время.

Длинный формат даты

Отображаются только значения даты, указанные в формате Long Date в региональных параметрах Windows.

27 августа 2018 г.

Средний формат даты

Отображает дату как дд/ммм/гг, но использует разделитель даты, указанный в региональных параметрах Windows.

27 августа/18
27 августа 18

Краткий формат даты

Отображает значения даты в соответствии с форматом «Краткая дата» в региональных параметрах Windows.

Длинный формат времени

Отображает часы, минуты и секунды, за которыми следует AM или PM. Access использует разделитель, указанный в параметре Времени в региональных параметрах Windows.

Средний формат времени

Отображает часы и минуты, за которыми следует AM или PM. Access использует разделитель, указанный в параметре Времени в региональных параметрах Windows.

Краткий формат времени

Отображает только часы и минуты. Access использует разделитель, указанный в параметре Времени в региональных параметрах Windows.

Применение настраиваемого формата

Иногда раскрывающийся список свойства Формат на странице свойств не содержит нужный формат даты. Вы можете создать собственный пользовательский формат, используя тип кода, который Access распознает для форматирования даты.

При применении настраиваемого формата к полю даты и времени можно комбинировать различные форматы, используя два раздела: один для даты, а другой — для времени. В таком случае разделы разделяются пробелом. Например, можно объединить форматы общей даты и длительного времени следующим образом: m/dd/yyyy h:mm:ss.

  1. Откройте таблицу в режиме Конструктор.
  2. В верхней части сетки конструктора выберите поле Дата/Время или Дата/время, которое требуется отформатировать.
  3. В разделе Свойства поля перейдите на вкладку Общие , щелкните ячейку рядом с полем Формат и введите конкретные символы в соответствии с потребностями форматирования.
  4. После ввода формата появится кнопка Параметры обновления свойства , которая позволяет применить формат к любым другим полям таблицы и элементам управления формы, которые логически наследуют его. Чтобы применить изменения к базе данных, щелкните смарт-тег, а затем щелкните Обновить формат везде, где используется имя поля. В этом случае имя поля — это имя поля даты и времени.
  5. Если вы решили применить изменения ко всей базе данных, откроется диалоговое окно Свойства обновления , в котором отображаются формы и другие объекты, которые наследуют новый формат. Нажмите кнопку Да , чтобы применить формат. Дополнительные сведения см. в разделе Распространение свойства поля.
  6. Сохраните изменения, а затем переключитесь в режим таблицы, чтобы узнать, соответствует ли формат вашим потребностям.

Примеры пользовательских форматов

Ниже приведены некоторые примеры различных способов форматирования 13 января 2012 г.

Формат даты, как.

Введите этот код в поле свойства Формат :

Запрос на выборку дат в MS ACCESS

Подскажите пожалуйста как в MS ACCESS с помощью sql запроса создать запрос на выборку дат относительно сегодняшней даты? Например есть таблица контакты. В ней есть атрибут дата_рождения. И нам надо сделать запрос который выведет поля у которых день рождения будет в течении следующих двух дней, относительно сегодняшней даты. (в общем наподобие этой штукенции в контакте)введите сюда описание изображения введите сюда описание изображения

Отслеживать
user177221
задан 30 мар 2016 в 7:17
93 1 1 серебряный знак 12 12 бронзовых знаков

В каком виде храните даты в базе? Какой тип? Приведите фрагмент из дизайнера таблицы с датами, а также желательно фрагмент данных.

30 мар 2016 в 7:22

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

30 мар 2016 в 11:33

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

SELECT * FROM [Контакты] WHERE [дата_рождения] IS NOT NULL AND DATEADD("yyyy", DATEDIFF("yyyy", [дата_рождения], DATE()), [дата_рождения]) BETWEEN DATE() AND DATEADD("d", 2, DATE()) 

Отслеживать
ответ дан 30 мар 2016 в 7:25
531 2 2 серебряных знака 10 10 бронзовых знаков
«Несоответствие типов данных в выражении условия отбора»
30 мар 2016 в 10:01

Пока возникает только подозрение на то, что [дата_рождения] имеет тип отличный от дата. Проверить пока что нет возможности .

30 мар 2016 в 10:05
Ответ уже нашел, но с типом там все верно.
30 мар 2016 в 14:03

Проверил в ACCESS. Конструкция «DATEADD(«yyyy», DATEDIFF(«yyyy», [дата_рождения], DATE()), [дата_рождения]) BETWEEN DATE() AND DATEADD(«d», 2, DATE())» ошибок не выдает.

31 мар 2016 в 1:57
А можете кинуть в качестве примера свою бд. Не могу понять почему ругается на тип данных.
31 мар 2016 в 6:51

 SELECT my_date FROM MyTable WHERE my_date >= #2016-03-30 00:00:00# AND my_date < #2016-04-02 00:00:00#; 

Отслеживать
ответ дан 30 мар 2016 в 7:23
user3195373 user3195373
415 2 2 серебряных знака 6 6 бронзовых знаков
Вообще ничего не выводит(
30 мар 2016 в 9:59

Всем спасибо, но помог мне такой код: SELECT Дата_рождения FROM контактные_лица WHERE Дата_рождения Between DATE() And DATEADD("d",2,DATE());

Отслеживать
ответ дан 30 мар 2016 в 13:13
93 1 1 серебряный знак 12 12 бронзовых знаков

Это был первый вариант, который я вам написал забыв подумать. Но он не должен работать правильно, так как на момент сейчас он будет выбирать только тех, кто родился с 31.03.2016 по 2.04.2016 (то есть, никого). Если человек родился, например, 01.04.1990, то, в соответствии с вашим условием, он в выборку не попадет. Поэтому в моем ответе и появилась конструкция, которая преобразует дату из 01.04.1990 в 01.04.2016. Хотя, если ваш запрос каким то магическим образом все таки работает правильно, то я вас с этим поздравляю.

Как в Access от текущей даты отнять заданную дату (в режиме Sql)?

Нужно создать запрос в Access, который бы по данным депозитных счетов начислял проценты. Для расчета нужно, что б от текущей даты отнималась дата открытия счета, что бы получить значение месяцев и подставить их в соответствующие формулы начисления процентов по депозитам на текущую дату.
Например:
[ДепозСчет]![Сумма]*(1+[ВидСчета]![Процент]*(ТекущаяДата(месяц)-[ДепозСчет]![ДатаОткрытия](месяц))/(30*100))
Как это записать в Sql? Поскольку построителем выражения Access этого не посчитать.

  • Вопрос задан более трёх лет назад
  • 3089 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *