Функция
|
Описание / примеры
|
BETWEEN(eTestValue, eLowValue, eHighValue)
|
Возвращает .T., если величина eTestValue расположена между значениями eLowValue и eHighValue, имеющими тот же тип, что и eTestValue, или равна одному из этих значений. В противном случае функция вернет .F. Функция вернет NULL, если хотя бы один из параметров eLowValue или eHighValue есть NULL
|
CDOW(dExpression | tExpression)
|
Возвращает название дня недели, соответствующего заданной дате или дате и времени. Тип результата – Character
? Cdow(Date( )) && Возможный результат: Monday
|
CMONTH(dExpression | tExpression)
|
Возвращает название месяца, соответствующего заданной дате или дате и времени. Тип результата – Character
? Cmonth(Date( )) && Возможный результат: November
|
CTOD(cExpression)
|
Преобразовывает символьное представление даты в дату. Параметр cExpression должен вычисляться как допустимая дата от 01/01/0001 до 12/31/9999. Формат отображения результата изменяется командами SET CENTURY, SET DATE и SET MARK Замечание. Функция CTOD( ) может при некоторых вариантах задания cExpression возвращать неверные даты и генерировать при этом ошибки, если SET STRICTDATE установлен в 2. Чтобы избежать таких ситуаций, используйте DATE(nYear, nMonth, nDay)
? Ctod('12.31.2004') && Напечатает: 12/31/04
|
CTOT(cExpression)
|
Преобразовывает символьное представление даты и времени в дату и время (в значение типа DateTime). Формат символьного представления даты и времени зависит от текущих установок, заданных по умолчанию или выполненных функциями SET CENTURY, SET DATE, SET HOURS и SET MARK. Чтобы преобразовать дату и время в формате Access, SQL Server, Visual Studio .NET и XML, следует установить надлежащим образом SET DATE. Однако если прописная буква T присутствует в символьном представлении XML-даты, то VFP независимо от текущей установки SET DATE при выполнении CTOT( ) использует YMD. После выполнения функции текущая установка восстанавливается. Замечания: 1. Функция CTOT( ) может при некоторых вариантах задания cExpression возвращать неверные дату и время и генерировать при этом ошибки, если SET STRICTDATE установлен в 2. Чтобы избежать таких ситуаций, используйте DATETIME( ). 2. Поскольку тип данных DateTime VFP не поддерживает миллисекунды и часовые пояса, то при преобразовании дат, представленных в формате, поддерживающем эти характеристики, будет происходить потеря точности
set date mdy
? Ctot('12/31/2004 11:59:59')
&& Напечатает: 12/31/04 11:59:59 AM
&&
&& Выполняются преобразования данных && в дату и время формата VFP,
&& Данные представлены в форматах разных источников
&& Во всех случаях преобразование выполняется
&& корректно без употребления SET DATE YMD &&
&& Access 2000 XML формат даты (24-часовой)
? Ctot("2000–10–24T13:30:00")
&& SQL Server 2000 XML формат даты
&& DateTime (24-часовой)
? Ctot("2000–10–24T20:47:58.170")
&& Small DateTime (24-часовой)
? Ctot("2000–10–24T21:11:00
? Ctot("2000–10–03T02:02:02")
&& Visual Studio .NET XML
? Ctot("2002–10–05T04:04:04.0000000-07:00")
&& Simple Object Access Protocol (SOAP)
? Ctot("2001–09–14T07:00:00Z")
|
DATE([nYear, nMonth, nDay])
|
Возвращает текущую системную дату или дату, заданную необязательными параметрами nYear, nMonth и nDay, означающими соответственно год, месяц и день даты. Значение nYear должно быть в диапазоне от 100 до 9999; nMonth – от 1 до 12; nDay – от 1 до 31. Любой NULL-параметр замещается системным значением. Тип результата функции – Date. Формат отображения результата изменяется командами SET CENTURY, SET DATE и SET MARK TO
? Date( ) && Возможный результат: 12/16/04 set century on set date to dmy set mark to '.' ? Date(2005, 12, 29) && Напечатает: 29.12.2005 && Возвращаемся к заданному по умолчанию разделителю set mark to
|
DATETIME([nYear, nMonth, nDay [, nHours [, nMinutes [, nSeconds]]]])
|
Возвращает текущие системные дату и время или дату и время, заданную необязательными параметрами nYear, nMonth, nDay, nHours, nMinutes и nSeconds, означающими соответственно год, месяц и день даты и час, минуту и секунду времени. Значение nYear должно быть в диапазоне от 100 до 9999; nMonth – от 1 до 12; nDay – от 1 до 31; nHours – от 0 до 23; nMinutes и nSeconds – от 0 до 59. Если параметр nHours (nMinutes, nSeconds) опущен, то соответствующий формальный параметр принимает значение 0. Тип результата функции – DateTime. Любой NULL-параметр даты замещается системным значением; NULL-параметр времени замещается 12:00:00. Формат отображения результата изменяется командами SET CENTURY, SET DATE, SET MARK TO, SET HOURS и SET SECONDS
&& && Вычисляется число секунд до Нового года && Начало нового года tNewYear = DateTime(Year(Date( )) + 1, 1, 1) && Текущие дата и время tToday = DateTime( ) && Число секунд до Нового года nSecondsToNewYear = tNewYear – tToday ? "До Нового года осталось " +; Transform(nSecondsToNewYear) + " секунд" && && Формируем дату и время set century off set date mdy ? DateTime(2004, 12, 31, 11, 59, 59) && Напечатает: 12/31/04 11:59:59 AM
|
DAY(dExpression | tExpression)
|
Возвращает число из диапазона 1 – 31, равное дню месяца, содержащемуся в дате или дате и времени
|
DMY(dExpression | tExpression)
|
Возвращает строку, содержащую дату в формате ДД <название месяца> ГГ | ГГГГ. Число выводимых при отображении года цифр регулируется командой SET CENTURY
set century on
store {^2005-12-25} to someDate
? Dmy(someDate) && Напечатает: 25 December 2005
set century off
? Dmy(someDate) && Напечатает: 25 December 05
|
DOW(dExpression | tExpression [, nFirstDayOfWeek])
|
Возвращает число из диапазона 1 – 7, равное дню недели, содержащемуся в дате или дате и времени. Номер дня зависит от номера, установленного параметром nFirstDayOfWeek в качестве первого дня недели. Если параметр nFirstDayOfWeek опущен, то в качестве первого дня недели берется воскресенье. Параметр nFirstDayOfWeek может принимать следующие значения:
|
nFirstDayOfWeek
|
Первый день недели
|
0
|
Первый день недели берется из установки Week Starts, имеющейся на вкладке Regional диалогового окна Options или заданной командой SET FDOW
|
1
|
Воскресенье (по умолчанию)
|
2
|
Понедельник
|
3
|
Вторник
|
4
|
Среда
|
5
|
Четверг
|
6
|
Пятница
|
7
|
Суббота
|
store Date( ) to curentDate && Пусть текущая дата – 16 ноября 2004 г. ? curentDate && 11/16/04 ? Dow(curentDate, 2) && Напечатает: 2 ? Cdow(curentDate) && Напечатает: Tuesday
|
DTOC(dExpression | tExpression [, 1])
|
Возвращает символьное представление даты, отвечающее заданной дате или дате и времени. Если задан третий равный 1 параметр, то результат возвращается в виде, пригодном для индексирования с целью отображения записей в хронологическом порядка
store DateTime( ) to curentDateTime && Пусть текущие дата и время – это && 16 ноября 2004 г. 10 ч 23 мин 12 с ? curentDateTime && 11/16/04 10:23:12 AM ? Dtoc(curentDateTime) && Напечатает: 11/16/04 ? Dtoc(curentDateTime, 1) && Напечатает: 200041116
|
DTOS(dExpression | tExpression)
|
Возвращает символьное представление даты, отвечающее заданной дате или дате и времени, в формате ГГГГММДД. Функция аналогична функции DTOC, вызванной с третьим равным 1 параметром. Функция полезна для индексирования таблиц по полям с данными типа Date или DateTime. На результат не оказывают влияние установки команд SET DATE и SET CENTURY
close databases open database 'd:\HomeLibrary\HomeLibrary' use Authors && Индексируем таблицу, используя выражение Dtos(InputDate) && Имя индексного файла – d:\AuthorsDate.idx && Отказываемся от предупреждений set safety off index on Dtos(InputDate) to d:\AuthorsDate ? Order( ) && Напечатает: AUTHORSDATE && Просматриваем всех авторов с датой большей someDate store Dtos({^2000–01–01}) to someDate scan for Dtos(InputDate) > someDate ? Author endScan && Восстанавливаем режим выдачи предупреждений set safety on
|
DTOT(dExpression)
|
Преобразовывает дату в дату и время, добавляя время полночи – 12:00:00 AM. Формат результата зависит от установок, выполняемых командами SET DATE и SET MARK
store Date( ) to curentDate
&& Пусть текущая дата – это 16 ноября 2004 г.
? curentDate && Напечатает: 11/16/04
? Dtot(curentDate) && Напечатает:11/16/04 12:00:00 AM
|
EMPTY(eExpression)
|
Возвращает .T., если выражение eExpression пустое, или .F. – в противном случае
? Empty(Ctod("")) && Напечатает: .T.
|
FDATE(cFileName [, nType])
|
Возвращает дату или дату и время последнего изменения файла, имеющего имя cFileName. Имя файла может включать путь. Если путь не указан, то VFP ищет файл в директории по умолчанию, а затем в директориях, заданных SET PATH. Если nType = 0 или опущен, то функция вернет дату; если nType = 1, то функция вернет дату и время. Чтобы узнать дату последнего обновления открытой таблицы используйте LUPDATE( )
|
FTIME(cFileName)
|
Возвращает строку, содержащую время последнего изменения файла, имеющего имя cFileName. Имя файла может включать путь. Если путь не указан, то VFP ищет файл в директории по умолчанию, а затем в директориях, заданных SET PATH
set century of set date mdy ? Fdate("d:\a.txt") && Напечатает: 12/14/04 ? Fdate("d:\a.txt", 1) && Напечатает: 12/14/04 11:43:46 AM ? Ftime("d:\a.txt") && Напечатает: 11:43:46 AM
|
GOMONTH(dExpression | tExpression, nNumberOfMonths)
|
Возвращает дату, отстоящую от даты, заданной параметром dExpression типа Date или tExpression типа DateTime, на указанное параметром nNumberOfMonths число месяцев. В случае нецелого параметра nNumberOfMonths функция использует целую часть его значения
store Date( ) to curentDate && Пусть текущая дата – это 17 ноября 2004 г. ? curentDate && Напечатает: 11/17/04 ? GoMonth(curentDate, 2) && Напечатает: 01/17/05 ? GoMonth(curentDate, -3) && Напечатает: 08/17/04
|
HOUR(tExpression)
|
Возвращает по заданному значению tExpression типа DateTime, содержащиеся в нем число часов. Тип результата – Numeric
store {^2005–12–25 10:25:44 a} to someDateTime ? Hour(someDateTime) && Напечатает: 10
|
INLIST(eExpression1, eExpression2 [, eExpression3 ...])
|
Возвращает .T., если параметр eExpression1 равен хотя бы одному из последующих параметров функции (которых может быть не более 24-х), или .F. – в противном случае
|
ISBLANK(eExpression)
|
Если eExpression – это поле с датой или датой и временем, то функция вернет .T., когда это поле принадлежит добавленной APPEND BLANK-записи, либо BLANK-очищенной записи
|
MAX(eExpression1, eExpression2 [, eExpression3 …])
|
Возвращает значение наибольшего параметра
|
MDY(dExpression | tExpression)
|
Возвращает дату, заданную параметром типа дата или дата и время, в которой месяц отображается прописью. Формат результата <Месяц> ДД, ГГ | ГГГГ. Число цифр в изображении года зависит от установки SET CENTURY
store {^2005–12–25 10:25:44 a} to someDateTime ? Mdy(someDateTime) && Напечатает: December 25, 05
|
MIN(eExpression1, eExpression2 [, eExpression3 …])
|
Возвращает значение наименьшего параметра
|
MINUTE(tExpression)
|
Возвращает по заданному значению tExpression типа DateTime, содержащееся в нем число минут. Тип результата – Numeric
store {^2005–12–25 10:25:44 a} to someDateTime ? Minute(someDateTime) && Напечатает: 25
|
MONTH(dExpression | tExpression)
|
Возвращает номер месяца (число от 1 до 12) по заданному параметру типа дата или дата и время. Тип результата – Numeric
|
QUARTER(dExpression | tExpression [, nMonth])
|
Возвращает квартал года по заданному параметру типа дата или дата и время. Тип возвращаемого результата – Numeric. Параметр nMonth задает месяц, используемый в качестве начала отсчета при вычислении квартала. Диапазон изменения nMonth от 1 до 12. На практике значение nMonth определяется по номеру месяца начала налогового периода. Функция вернет 0, если первый параметр имеет пустое значение
? Quarter({^2005–12–31}) && Напечатает: 4
|
SEC(tExpression)
|
Возвращает по заданному значению tExpression типа DateTime, содержащиеся в нем число секунд. Тип результата – Numeric
store {^2005–12–25 10:25:44 a} to someDateTime ? Sec(someDateTime) && Напечатает: 44
|
SECONDS( )
|
Возвращает число секунд, отсчитанных от полночи. Время вычисляется с точностью до миллисекунд, например:
? Seconds( ) && Возможный результат: 62217.093
Тип результат – Numeric. Функция пригодна, в том числе, и для точной оценки времени вычислений, например:
tStart = Seconds( ) … <некоторые вычисления> … && Время вычислений calculationTime = tStart – Seconds( )
Если даты начала и окончания вычислений различны, то приведенная формула для calculationTime должна быть уточнена
|
SYS(2)
|
Возвращает число секунд, отсчитанных от полночи. Время вычисляется без миллисекунд. Тип результат – Character
|
TIME([nExpression])
|
Возвращает текущее системное время в 24-часовом формате чч:мм:сс; результат имеет тип Character. Если задан параметр nExpression, то результат указывается с точность до сотой доли секунды. Однако реальная точность – около 1/18 секунды. Для получения большей точности используйте SECONDS( )
? Time( ) && Возможный результат: 18:46:44 ? Time(1) && Возможный результат: 18:46:44.74
|
TTOC(dExpression | tExpression [, 1 | 2 | 3])
|
Возвращает символьное представление даты и времени. Если первый параметр содержит только время, то VFP добавляет к параметру дату по умолчанию – 12/30/1899; если не задано время, то VFP добавит к параметру время по умолчанию – 12:00:00 AM. Если второй параметр равен 1, то результат возвращается в виде, пригодном для индексирования: результирующая строка содержит 14 символов в формате yyyymmddhhmmss и не зависит от текущих установок SET CENTURY и SET SECONDS. Если второй параметр равен 2, то результат содержит только время. На вид результата влияют установки команд SET SECONDS и SET DATE. Если второй параметр равен 3, то функция вернет 19-символьную строку yyyy-mm-ddThh:mm:ss, содержащую дату и время в формате XML. На результат не действуют установки команд SET CENTURY, SET HOURS и SET SECONDS.
store {^2005–12–25 10:25:44 a} to someDateTime ? Ttoc(someDateTime) && Напечатает: 12/25/05 10:25:44 AM ? Ttoc(someDateTime, 1) && Напечатает: 20051225102544 ? Ttoc(someDateTime, 2) && Напечатает: 10:25:44 AM && && Время не задано, в результате указывается время, && соответствующее полночи store {^2005–12–25} to someDate ? Ttoc(someDate) && Напечатает: 12/25/05 12:00:00 AM
|
TTOD(tExpression)
|
Возвращает дату, содержащуюся в параметре типа DateTime. Если параметр tExpression содержит только время, то к нему будет добавлена дата по умолчанию – 12/30/1899
|
WEEK(dExpression | tExpression [, nFirstWeek] [, nFirstDayOfWeek])
|
Возвращает номер недели (число от 1 до 53) по заданному параметру типа дата или дата и время. Первая неделя года может начинаться в предшествующем году. Способ определения первой недели следующим образом регулируется параметром nFirstWeek:
|
nFirstWeek
|
Описание
|
0
|
Первая неделя года определяется в соответствии с заданным на закладке Regional диалогового окна Options значением First Week of Year. Значение First Week of Year может быть также установлено командой SET FWEEK
|
1
|
Первая неделя содержит дату 1 января. Этот критерий используется, если параметр nFirstWeek опущен
|
2
|
Первая неделя содержит в заданном первым параметром годе более 3-х дней
|
3
|
Все дни первой недели находятся в заданном первым параметром годе
|
Если параметр nFirstDayOfWeek опущен, то в качестве первого дня недели берется воскресенье. В противном случае первый день недели задается параметром nFirstDayOfWeek; действие параметра см. в описании функции DOW( )
store {^2005–12–25} to someDate ? Week(someDate) && Напечатает: 53
|
YEAR(dExpression | tExpression)
|
Возвращает год, заданный датой dExpression или датой и временем tExpression. Тип результата – Numeric. Год всегда возвращается с указанием века: установки SET CENTURY на результат влияния не оказывают
store {^0005-–12–25} to someDate ? Year(someDate) && Напечатает: 5 ? Year(Date( )) && Возможный результат: 2005
|
|
|
|
|