- •Консультации к госэкзаменам
- •4. Команды установки параметров
- •11. Модификация таблицы
- •11, 13. Добавление и удаление записей командами sql. Модификация таблицы
- •19. Поиск данных в неиндексированной таблице
- •20. Фильтрация данных в неиндексированной таблице
- •23. Сортировка данных в таблице
- •24. Создание базы данных
- •26. Создание и использование переменных
- •28. Функции работы с датой и временем
- •29. Функции для работы с таблицей
- •30. Функции для преобразования типов данных
- •31. Создание программных файлов
- •32. Создание и работа с меню
- •36. Понятие события и метода
- •39. Целостность, достоверность и непротиворечивость данных
- •40. Контроль достоверности данных на уровне таблицы
- •42. Отчёт. Создание отчета средствами мастера
- •44. Формирование запросов средствами команд языка sql
- •Практические задания
- •8. Создание кнопок.
- •12. Программа для вычисления
- •13. Работа с функциями времени
28. Функции работы с датой и временем
CDOW (<вырN>) - возвращает имя дня недели по-английски.
Пример: SET DATE GERMAN
? CDOW({^2005.10.01}) && Saturday
? 'Сегодня ' + CDOW({^2006.11.01}) && Сегодня Wednesday
CMONTH (<вырD>) - предъявляет название месяца по-английски.
Пример:? CMONTH({^2005.10.01}) && October
DATE() - предъявляет системную дату, т.е. дату, которая была введена при загрузке в компьютер операционной системы. Формат предъявления зависит от команд SET CENTURY и SET DATE.
Пример:
?DATE() && 16.10.05
Опробуйте функцию ?DATE() с предварительным выполнением команды SET CENTURY и SET CENTURY OFF
Приведём пример использования функции DATE() при работе с таблицей. Допустим, в некоторой абстрактной таблице есть поле Date и необходимо просмотреть все записи внесённые за последний месяц. Достичь желаемого поможет команда фильтрации записей в сочетании с функцией:
SET FILTER TO date>date()-30 && здесь функция date() определяет сегодняшнюю (системную) дату, а -30 отсчитывает 30 дней назад.
TIME() – предъявляет системное время, например:
?TIME() && 15:25:51
DATETIME() – предъявляет одновременно дату и время (без секунд).
DMY( вырD) – возвращает день, месяц и год в виде строки символов.
Пример:
?DMY({^2005.10.01}) && 01 October 05
?DMY(DATE()) && возвращает сведения о текущей дате
DAY(<ВырD>) - число месяца по выражению типа дата <вырD>.
Пример:
? DAY({^2005.10.16}) && 16
DOW(<вырD>) - определяет номер дня недели по <вырD>. В России первым день недели считается понедельник, но в других странах первый день – воскресенье. Индикация номеров дней недели на экране зависит от настроек, установленных в VFP.
Пример:
? DOW({^2005.10.16}) && 1 (Вс-1, Сб-7)
Пример. Установите каким днём недели будет день, отстоящий от сегодняшнего на 100 дней.
?DATE() +100 && выводится дата, например 30.09.2006
?DOW ({^2006.09.30}) && выводится номер дня недели -7
MONTH(<вырD>) - определяет числовое значение номера месяца по дате <вырD>.
Пример:
? MONTH({^2005.10.05}) &&. 10
YЕАR(<вырD>) - определяет числовое значение года по <вырD>.
Пример:
? YEAR({^2005.10.05}) && 2005
Переменные и поля типа дата удобны тем, что к ним можно прибавлять и из них можно вычитать желаемое число дней и дата все равно останется корректной, т.е. будет содержать правильные месяц, день и год.
При использовании функций даты и времени может возникнуть необходимость использования функций преобразования типов данных. Например, требуется вывести на экран сообщение: «Сегодня прошло … дней со дня моего рождения». Для этого введём следующую команду:
? "Сегодня прошло "+STR(DATE()-{^1987.11.20})+" с момента моего рождения"
Вместо знака + можно использовать запятую.
29. Функции для работы с таблицей
ALIАS () Возвращает псевдоним таблицы в текущей рабочей области.
BOF() – определяет находится ли курсор на самой первой записи.
CPCURRENT() – возвращает номер используемой кодовой страницы.
CPDBF() –возвращает номер кодовой страницы для таблицы, открытой в текущей рабочей области.
DBF () – возвращает имя таблицы, открытой в текущей рабочей области.
EMPTY() – определяет, является ли выражение пустым.
EOF()– определяет находится ли курсор на самой последней записи
FCOUNT() – возвращает число полей текущей таблицы.
FOUND() – возвращает .Т., если при в результате поиска было найдено искомое.
ISREADONLY() возвращает .Т., если таблица открыта только для чтения.
LUPDATE() - возвращает дату последней модификации таблицы;
RECCOUNT() – возвращает число записей открытой таблицы.
RECNO() – возвращает номер записи, на которой установлен маркёр.
SELECT() – возвращает номер текущей рабочей области.
USED() – определяет, открыта ли таблица в текущей или указанной рабочей области.
Пример:
? USED() возвращает .F., если в рабочей области не открыта ни одна таблица и .T. , если таблица открыта.