III. Функции даты и времени
Функция используется для возвращения значения в точку вызова. Значение, возвращаемое функцией, определяется ее типом, например, функция Now() возвращает дату и время часов компьютера. Синтаксически функция выделяется круглыми скобками, следующими сразу за ее идентификатором (именем функции). Многие функции требуют наличия аргументов, которые записываются в этих скобках через точку с запятой при обращении к функции. Функции можно использовать для создания нового выражения или функции. Перед знакомством с функциями Access для работы с датами и временем сделаем несколько замечаний об именах объектов Access, т.к. они очень часто используются для построения условий отбора и при вычислениях.
3.1 Идентификаторы объектов
Любой объект Access имеет имя, по которому его можно однозначно идентифицировать в некоторой системе объектов. Кроме обозначения коротким именем объекта, идентификатор можно обозначить и полным именем. Полное имя объекта является составным, т.к. состоит из двух коротких имен, разделяемых восклицательным знаком или точкой. Первое – имя класса объектов (таблицы, запроса, формы или отчета), второе – собственное имя объекта. Из-за использования указанных разделителей имена объектов не должны содержать символов «!» и «.». Символ «!» используется в Access для разделения имен таблиц и имен полей, например, [Поставщики]![Адрес].
3.2 Использование функций даты и времени
Microsoft Access хранит значения дат и времени как десятичные числа длиной восемь байт. Чтобы сообщить Access о том, что вы вводите дату и время, заключите значение в символы числа (#). Для указания конкретной даты используйте нотацию, которая вам кажется наиболее удобной. Например, #15 апреля 2008#, #15/04/08# и #15-апр-2008# определяют одну и ту же дату. Точно так же #5:30 PM# и #17:30# определяют время «семнадцать часов тридцать минут».
Access предоставляет несколько функций, которые могут оказаться полезными при задании условий отбора для дат и времени. Ниже приведены описания основных функций для работы с датами и временем (таблица 9).
Таблица 9 – Описание функций даты и времени
Функция |
Описание |
Day(дата) |
Возвращает значение дня месяца в диапазоне от 1 до 31 |
Year(дата) |
Возвращает значение года в диапазоне от 100 до 9999 |
Month(дата) |
Возвращает значение месяца года в диапазоне от 1 до 12 |
Weekday(дата) |
По умолчанию возвращает целое число от 1 (Воскресенье) до 7 (Суббота), соответствующее дню недели |
Hour(дата) |
Возвращает целое число от 0 до 23, представляющее значение часа |
Now(0 |
Возвращает дату и время часов компьютера. |
Date() |
Возвращает текущую системную дату |
DateDiff() |
Находит разницу между двумя датами |
Приведем примеры использования функций для работы с датами и временем (таблица 10).
Таблица 10 – Примеры применения функций
Поле |
Выражение |
Описание |
Дата доставки |
< Date( )- 30 |
Использует функцию Date для отображения заказов, сделанных ранее, чем 30 дней назад. |
Дата отправки |
Year([Дата отправки])=2008 |
Использует функцию Year для отображения заказов, сделанных в 2008 году. |
Дата доставки |
Year([Доставка]![Дата доставки])=Year(Date()) And Month([Доставка]![Дата доставки])=Month(Date()) |
Использует функции Year и Month, а также оператор And для отображения доставок текущего года и месяца. |
Разница между датами |
DateDiff(«d»; #12.04.2007#; #28.04.2007#) = 16 |
Находит разницу между двумя датами («d» – в днях, “ww”– в неделях, “m” – в месяцах, “yyyy” – в годах и др. ), в данном случае разница должна составлять 16 дней. |
ЗАДАНИЕ 11
С помощью функция даты и времени выясним у каких поставщиков доставка осуществляется с февраля по май.
Откройте таблицу Поставщики в режиме просмотра.
Щелкните по вкладке Главная на ленте команд, перейдите в группу Сортировка и фильтр и щелкните стрелку после кнопки дополнительно.
Щелкните по опции Расширенный фильтр, перед вами откроется окно фильтра.
Введите данные представленные на рисунке 125.
Рисунок 125 – Условия отбора по полю «Срок доставки»
Примените фильтр.
Результат представлен на рисунке 126.
Рисунок 126 – Результат применения фильтра
Того же результата можно было достичь, если вместо введенного вами условия отбора, вы указали следующую запись:
Month([Срок доставки])>=2 and Month([Срок доставки])<5
Задание 12
Выясните сколько поставщиков выполнило заказ в первые 2 месяца 2008 года.
Используя функции Year, Month, Date (), а также оператор And, выясните для поставщиков, чьим сроком доставки является текущий месяц 2008 года.
Выясните информацию о доставках, произведенных в апреле 2008 года.
Выясните данные о доставках проходивших с 15 по 29 мая 2008 года.
С помощью таблицы Заказы выведите записи о заказах, которые осуществлялись не в декабре 2008 года на автомобили с Российской сборкой.
Результат покажите преподавателю.
РЕЗЮМЕ
Сортировка записей ( по полю) – это изменение порядка следования записей в зависимости от значений данных в этом поле.
Сортировка (упорядочение) данных по возрастанию означает, что значения в поле отсортированного текста располагаются по алфавиту (от А до Я), отсортированные числовые значения идут от меньшего к большему, а отсортированные поля дат/времени располагаются по увеличению даты и времени от лет до н.э. к годам н.э.
Сортировка (упорядочение) данных по убыванию означает обратное.
Фильтр – это набор условий для отбора записей и/или их сортировки.
Фильтр действует только в рамках конкретного объекта, открытого в режиме просмотра: таблицы, запроса или формы.