Изменение дат с помощью функций и операторов в Access

Эта статья применима к файлам баз данных Microsoft Access (.mdb) или (.accdb), а также к файлу проекта Microsoft Access (.adp).

Средний. Требуются базовые навыки макроса, программирования и взаимодействия.

Сводка

В этой статье описаны функции и операторы, доступные в Microsoft Office Access 2007, Microsoft Office Access 2003 и Microsoft Access 2002. Функции и операторы можно использовать для изменения типа данных даты и времени с помощью примеров запросов. В примерах запросов, которые можно использовать для изменения значений дат, используются таблицы в Northwind.mdb образце базы данных.

Примечание.

Пример базы данных Northwind для Access 2007 не использует те же поля, что и в предыдущих версиях примера базы данных Northwind. Поля HireDate и BirthDate в таблице Employees, включенной в пример базы данных Northwind для Access 2007, отсутствуют. Поле EmployeeID переименовано в идентификатор, а поле FirstName — в Имя.

Дополнительные сведения

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

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

Функция Date(), функция Now() и функция Format()

SELECT Date(), Now();

Функция Date() возвращает текущую дату в формате короткой даты. Функция Now() возвращает текущую дату со временем.

SELECT Format(Now(), "dd mmmm yyyy");

Вы можете использовать функцию Format() со значениями даты, чтобы указать формат даты, который требуется использовать для даты. В этом примере запроса возвращается текущая дата в формате длинной даты (01 декабря 2003 г.).

Функция Day(), функция WeekDay(), функция Month() и функция Year()

SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year 
FROM Employees;

Из таблицы Сотрудники этот запрос возвращает дату найма, день найма, день недели найма, месяц найма и год найма каждого сотрудника. Обратите внимание, что функция WeekDay() возвращает числовое значение, указывающее день недели.

Функция DatePart()

SELECT *  FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;

Из таблицы Сотрудники этот запрос возвращает всех сотрудников, родившихся до 1960 года. Функцию DatePart() можно использовать для извлечения части указанной даты, например дня, месяца или года.

Функция DateDiff()

SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;

Из таблицы Сотрудники этот запрос возвращает идентификатор сотрудника, имя, дату рождения и возраст каждого сотрудника. Функция DateDiff() возвращает разницу или задержку времени между двумя указанными значениями даты (с точки зрения дня, месяца, года или единиц времени, таких как часы, минуты и секунды).

Функция DateAdd()

SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;

Из таблицы Сотрудники этот запрос возвращает идентификатор сотрудника, имя, дату найма и дату окончания 10 лет работы сотрудника в компании. Функция DateAdd() увеличивает дату на указанное количество единиц времени, например день, месяц или год, а затем возвращает результирующий результат.

Числовое значение можно добавить к значению даты напрямую. Сделайте это, чтобы увеличить значение даты на день, как показано в следующем примере:

SELECT Date() + 1 ;

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

Функция DateValue()

SELECT DateValue("20 Nov 2003") AS ValidDate;

Функция DateValue() проверяет, является ли входная строка допустимой датой. Если входная строка распознается как допустимая дата, дата возвращается в формате короткой даты. Если входная строка не распознается как допустимая дата, возвращается инструкция "Несоответствие типов данных в выражении условий". Функция DateValue() распознает различные форматы даты, такие как мм дд гггг, дд мм гггг, дд мм гггг, дд ммм гггг и дд ммм гг чч:мм:сс длинный формат даты.

Функция DateSerial()

SELECT DateSerial( 2003, 03, 1-1);

Функция DateSerial() возвращает значение даты для указанных входных параметров года, месяца и дня. Входные параметры могут быть выражениями, которые связаны с арифметическими операциями. Функция DateSerial() вычисляет выражения во входных параметрах, прежде чем возвращает результирующее значение даты.

В этом примере запроса возвращается последний день в феврале за 2003 год. Последний входной параметр дня со значением 1 уменьшается на 1. В результате параметр month оценивается как 2.

Использование операторов сравнения со значениями дат

Для сравнения значений даты в выражениях и запросах можно использовать следующие операторы сравнения:

  • < (меньше)
  • > (больше)
  • <= (меньше или равно)
  • >= (больше или равно)
  • <> (не равно)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

Этот запрос использует >оператор сравнения = и <оператор сравнения = для проверки того, попадает ли дата найма сотрудника в диапазон двух указанных дат. Этот запрос извлекает записи всех сотрудников, которые были наняты в последнем квартале 1993 календарного года.

SELECT * FROM Employees
WHERE HireDate <> Date();

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

Функция WeekdayName()

SELECT WeekdayName(1, False, 1) AS FirstWeekDayName;

Функция WeekdayName() возвращает строку, указывающую день недели, как указано в первом параметре. Возвращаемая строка дня недели зависит от третьего параметра. Этот параметр задает первый день недели. Второй параметр имеет значение False, чтобы указать, что имя дня недели не должно быть сокращено.

В этом примере запрос возвращает значение sunday в качестве первого дня недели.

Функция MonthName()

SELECT MonthName(1);

Функция MonthName() возвращает строку, указывающую имя месяца для указанного числа месяца от 1 до 12. Входной параметр также может быть выражением, как в следующем запросе:

SELECT MonthName( DatePart("m", Date()) );

Этот запрос возвращает имя текущего месяца.

Ссылки

Для получения дополнительных сведений щелкните следующие номера статей, чтобы просмотреть статьи в базе знаний Майкрософт:

  • 290178 Создание запроса с параметрами для оценки сложных условий в Microsoft Access
  • 290190 Создание двух функций для вычисления возраста в месяцах и годах в Microsoft Access