Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Вычисления для дат и времени




 

Используя функции для дат, всегда следует помнить о датах, содержащих информацию о времени. (Напоминаю, все даты могут содержать данные о времени суток. Но, выбирая подходящий формат для поля с датами, вы сообщаете программе Access о том, нужно ли отображать временной компонент даты и разрешать пользователям вводить его, как объясняется в разд. "Дата/время " главы 2. Чаще всего вы будете пользоваться форма­том, скрывающим любую информацию о времени суток.)

Проблема: функция Date ( ) возвращает текущую дату со значением времени суток, равным 0. Другими словами, если текущая дата — 4 июля 2008 г., то функция Date ( ) возвращает первую секунду 4 июля 2008 г. — момент, когда часы показывают полночь (12:00 a.m.)

Если вы не храните значения времени суток, эта проблема не важна, поскольку у всех ваших дат время суток равно 0. Но что произойдет, если вы используете Полный фор­мат даты (см. табл. 2.3) в поле DueDate,разрешающий пользователям вводить и дату, и время. Теперь у условия отбора =<Date ( ) несколько иной смысл — вы сообщаете Access о необходимости отобрать, как совпадающие, все поля с датами, наступившими до первой секунды текущего дня. Это условие не выберет запись со сроком платежа, назна­ченным на 16:00 текущего дня.

В данной ситуации, возможно, нужно изменить условие отбора на следующее: <(Date()+l)

Date () +1 — это завтра. Другими словами, это условие отбирает любые записи со сро­ком платежа, истекшим до первой секунды завтрашнего дня.

Между прочим, у программы Access есть функция Now (), возвращающая текущую дату и время. Таким образом, следующее условие фильтрации отбирает все записи, соответ­ствующие текущему моменту (текущего дня) или любому моменту времени во все предшествующие дни:

=<Now( )

 

Компоненты дат применяются в нескольких функциях обработки дат, включая функции DatePart ( ), DateAdd ( ) и DateDiff ( ). В табл. 7.6 приведены эти и дополнительные по­лезные функции, относящиеся к датам.


Таблица 7.6. Функции обработки дат

Глава 7. Основные хитрости, применяемые в запросах  
Функция Описание Пример Результат
Date () Получает текущую дату Date () 1/20/2006
Now () Получает текущую дату и время Now ( ) 1/20/2006 10:16:26 PM
DatePart () Извлекает часть даты (например, год, месяц или день в месяце) DatePart(#1/20/ 2006#, "d")
DateSerial() Преобразует год, месяц и день в значение даты Access DateSerial(2006, 5, 4) 5/4/2006
DateAdd ( ) Сдвигает дату на заданный интервал DateAdd("yyyy", 2, #22/ll/2006#) 22/11/2008
DateDiff ( ) Определяет интервал между двумя датами DateDiff("w", #10/l5/2006#, #l/ll/2007#)
MonthName ( ) Получает название, соответствую­щее номеру месяца (от 1 до 12) MonthName (1) "January"
WeekdayName ( ) Получает название, соответствую­щее номеру дня в неделе (от 1 до 7) WeekdayName (1) "Sunday"
Format () Преобразует дату в форматирован­ный текст (используя любой формат даты, описанный в табл. 2.3) Format(#27/04/ 2008#, "Long Date") "April 27, 2008"

Поделиться:

Дата добавления: 2014-11-13; просмотров: 71; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты