Функции даты и времени
Функции даты и времени QlikView используются для преобразования значений даты и времени. Все функции можно использовать как в скрипте загрузки, так и в выражениях диаграмм.
Функции основываются на серийном номере даты-времени, который равен количеству дней с 30 декабря 1899 г. Целое значение представляет день, а дробное — время дня.
Программа QlikView использует числовое значение параметра, поэтому число может использоваться в качестве параметра также и в тех случаях, когда оно не отформатировано в виде даты или времени. Если параметр не соответствует числовому значению, потому что, например, является строкой, то программа QlikView пытается интерпретировать строку в соответствии с переменными окружения для даты и времени.
Если используемый в параметре формат времени не соответствует установленному в переменных окружения, программа QlikView не сможет правильно выполнить интерпретацию. Для разрешения этой проблемы измените настройки или воспользуйтесь функцией интерпретации.
В примерах для каждой функции допускается время по умолчанию и форматы дат hh:mm:ss и YYYY-MM-DD (ISO 8601).
В ходе обработки метки времени с функцией даты или времени QlikView не учитывает параметры перехода на летнее время, за исключением случаев, когда функция даты или времени включает географическое положение.
Например, ConvertToLocalTime( filetime('Time.qvd'), 'Paris') использует параметры перехода на летнее время, тогда как ConvertToLocalTime(filetime('Time.qvd'), 'GMT-01:00') не использует параметры перехода на летнее время.
Пользуйтесь информацией из раскрывающегося списка по каждой функции, чтобы увидеть краткое описание и синтаксис каждой функции. Дополнительную информацию можно получить, если щелкнуть имя функции в описании синтаксиса.
Целочисленные выражения времени
Эта функция возвращает время в секундах в виде целого числа, а дробное выражение expression интерпретируется как время согласно стандартной интерпретации чисел.
second(expression)
Эта функция возвращает время в минутах в виде целого числа, а дробное выражение expression интерпретируется как время согласно стандартной интерпретации чисел.
minute(expression)
Эта функция возвращает время в часах в виде целого числа, а дробное выражение expression интерпретируется как время согласно стандартной интерпретации чисел.
hour(expression)
Эта функция возвращает день в виде целого числа, а дробное выражение expression интерпретируется как дата согласно стандартной интерпретации чисел.
day(expression)
Эта функция возвращает номер недели в виде целого числа согласно стандарту ISO 8601. Номер недели высчитывается на основе интерпретации данных выражения согласно стандартной интерпретации чисел.
week(timestamp [, first_week_day [, broken_weeks [, reference_day]]])
Эта функция возвращает двойное значение с именем месяца, как определено переменной окружения MonthNames, и целое в диапазоне от 1 до 12. Месяц высчитывается на основе интерпретации данных выражения согласно стандартной интерпретации чисел.
month(expression)
Эта функция возвращает год в виде целого числа, а выражение expression интерпретируется как дата согласно стандартной интерпретации чисел.
year(expression)
Эта функция возвращает год, которому принадлежит номер недели согласно стандарту ISO 8601. Номер недели в году может быть установлен в пределах от 1 до 52.
weekyear(expression)
Эта функция возвращает двойное значение со следующим: Имя дня, как определено переменной окружения DayNames. Целое от 0 до 6, соответствующее номинальному дню недели (0–6).
weekday(date)
Функции меток времени
Эта функция возвращает метку текущего времени по системным часам. Значение по умолчанию равно 1.
now([ timer_mode])
Эта функция возвращает текущую дату по системным часам.
today([timer_mode])
Эта функция возвращает метку текущего времени по системным часам для указанного часового пояса.
localtime([timezone [, ignoreDST ]])
Функции формирования
Эта функция возвращает дату, рассчитанную в формате год YYYY, месяц MM и день DD.
makedate(YYYY [ , MM [ , DD ] ])
Эта функция возвращает дату, рассчитанную в формате год YYYY, неделя WW и день недели D.
makeweekdate(YYYY [ , WW [ , D ] ])
Эта функция возвращает время, рассчитанное в формате часы hh, минуты mm и секунды ss.
maketime(hh [ , mm [ , ss [ .fff ] ] ])
Другие функции даты
Эта функция возвращает дату через n месяцев после даты startdate или, если n является отрицательным числом, — дату за n месяцев до даты startdate.
addmonths(startdate, n , [ , mode])
Эта функция возвращает дату через n лет после даты startdate или, если n является отрицательным числом, — дату за n лет до даты startdate.
addyears(startdate, n)
Эта функция определяет, находится ли введенная дата в том году, в котором находится дата последней загрузки скрипта, и возвращает значение True, если это так, и False если это не так.
yeartodate(timestamp [ , yearoffset [ , firstmonth [ , todaydate] ] ])
Функции часовых поясов
Эта функция возвращает имя текущего часового пояса, соответствующее имени, используемому в Windows, без учета настроек перехода на летнее время.
timezone( )
Эта функция возвращает дату и текущее время Greenwich Mean Time согласно системным часам и настройкам времени в Windows.
GMT( )
Возвращает дату и текущее время Coordinated Universal Time.
UTC( )
Возвращает текущие настройки перехода на летнее время согласно установкам Windows.
Преобразует формат метки времени UTC или GMT в местное время и выводит в виде двойного значения. Местоположение может задаваться для любого числа городов и часовых поясов Земли.
converttolocaltime(timestamp [, place [, ignore_dst=false]])
Функции установки времени
Данная функция принимает в качестве ввода поля timestamp и year и обновляет поле timestamp указанным при вводе значением year .
setdateyear (timestamp, year)
Данная функция принимает в качестве ввода поля timestamp, month и year и обновляет поле timestamp указанными при вводе значениями year и month .
setdateyearmonth (timestamp, year, month)
Функции вхождения
Эта функция возвращает значение True, если поле timestamp находится в пределах года, включающего значение, указанное в поле base_date.
inyear(date, basedate , shift [, first_month_of_year = 1])
Эта функция возвращает значение True, если значение timestamp находится в пределах части года, включающей значение, заданное в поле base_date до последней миллисекунды, указанной в поле base_date, включительно.
inyeartodate (date, basedate , shift [, first_month_of_year = 1])
Эта функция возвращает значение True, если поле timestamp находится в пределах квартала, включающего значение, указанное в поле base_date.
inquarter (date, basedate , shift [, first_month_of_year = 1])
Эта функция возвращает значение True, если значение timestamp находится в пределах части квартала, включающей значение, заданное в поле base_date до последней миллисекунды, указанной в поле base_date, включительно.
inquartertodate (date, basedate , shift [, first_month_of_year = 1])
Эта функция возвращает значение True, если поле timestamp находится в пределах месяца, включающего значение, указанное в поле base_date.
inmonth(date, basedate , shift)
Возвращает значение True, если значение timestamp находится в пределах части месяца, включающей значение, заданное в поле base_date до последней миллисекунды, указанной в поле base_date, включительно.
inmonthtodate (date, basedate , shift)
Эта функция определяет, относится ли метка времени к тому же месяцу, двухмесячному периоду, кварталу, четырехмесячному периоду или полугодию, что и базовая дата. Также можно проследить, находится ли метка времени в предыдущем или в последующем временном периоде.
inmonths(n, date, basedate , shift [, first_month_of_year = 1])
Эта функция определяет, находится ли метка времени в части месяца, двухмесячного периода, квартала, четырехмесячного периода или полугодия до последней миллисекунды, указанной в поле base_date, включительно. Также можно проследить, находится ли метка времени в предыдущем или в последующем временном периоде.
inmonthstodate (n, date, basedate , shift [, first_month_of_year = 1])
Эта функция возвращает значение True, если поле timestamp находится в пределах недели, включающей значение, указанное в поле base_date.
inweek(date, basedate , shift [, weekstart])
Эта функция возвращает значение True, если значение timestamp находится в пределах части недели, включающей значение, заданное в поле base_date до последней миллисекунды, указанной в поле base_date, включительно.
inweektodate (date, basedate , shift [, weekstart])
Эта функция возвращает значение true, если значение timestamp находится в пределах лунной недели, включающей значение, указанное в поле base_date. Лунные недели в QlikView определяются от 1 января как первого дня недели.
inlunarweek (date, basedate , shift [, weekstart])
Эта функция возвращает значение true, если значение timestamp находится в пределах части лунной недели до последней миллисекунды, указанной в поле base_date, включительно. Лунные недели в QlikView определяются от 1 января как первого дня недели.
inlunarweektodate (date, basedate , shift [, weekstart])
Эта функция возвращает значение True, если поле timestamp находится в пределах дня, включающего значение, указанное в поле base_timestamp.
inday(timestamp, basetimestamp , shift [, daystart])
Эта функция возвращает значение True, если значение timestamp находится в пределах части дня, включающей значение, заданное в поле base_timestamp до определенной миллисекунды, указанной в поле base_timestamp, включительно.
indaytotime(timestamp, basetimestamp , shift [, daystart])
Функции начала и конца
Эта функция возвращает значение метки времени, соответствующее началу первого дня года, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
yearstart( date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, соответствующее метке времени, включающей последнюю миллисекунду последнего дня года, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
yearend( date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает 4-значное значение года с базовым числовым значением, соответствующим метке времени с первой миллисекундой первого дня года, содержащего значение, указанное в поле date.
yearname(date [, shift = 0 [, first_month_of_year = 1]] )
Эта функция возвращает значение, соответствующее метке времени, включающей первую миллисекунду квартала, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
quarterstart(date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, соответствующее метке времени, включающей последнюю миллисекунду квартала, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
quarterend(date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, отображающее месяцы квартала (в формате переменной MonthNames скрипта) и год с базовым числовым значением, соответствующим метке времени, включающей первую миллисекунду первого дня квартала.
quartername(date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, соответствующее метке времени, включающей первую миллисекунду первого дня месяца, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
monthstart(date [, shift = 0])
Эта функция возвращает значение, соответствующее метке времени, включающей последнюю миллисекунду последнего дня месяца, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
monthend(date [, shift = 0])
Эта функция возвращает значение, отображающее месяц (в формате переменной MonthNames скрипта) и год с базовым числовым значением, соответствующим метке времени, включающей первую миллисекунду первого дня указанного месяца.
monthname(date [, shift = 0])
Эта функция возвращает значение, соответствующее метке времени первой миллисекунды месяца, двухмесячного периода, квартала, четырехмесячного периода или полугодия, содержащих базовую дату. Также можно найти метку времени для предыдущего или последующего временного периода.
monthsstart(n, date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, соответствующее метке времени последней миллисекунды месяца, двухмесячного периода, квартала, четырехмесячного периода или полугодия, содержащих базовую дату. Также можно найти метку времени для предыдущего или последующего временного периода.
monthsend(n, date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, представляющее диапазон месяцев периода (форматированного согласно переменным скрипта MonthNames), а также года. Базовое числовое значение соответствует метке времени первой миллисекунды месяца, двухмесячного периода, квартала, четырехмесячного периода или полугодия, содержащих базовую дату.
monthsname(n, date [, shift = 0 [, first_month_of_year = 1]])
Эта функция возвращает значение, соответствующее метке времени, включающей первую миллисекунду первого дня (понедельника) календарной недели, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
weekstart(date [, shift = 0 [,weekoffset = 0]])
Эта функция возвращает значение, соответствующее метке времени, которая включает последнюю миллисекунду последнего дня (воскресенья) календарной недели, содержащей значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
weekend(date [, shift = 0 [,weekoffset = 0]])
Эта функция возвращает значение года и номер недели с базовым числовым значением, соответствующим метке времени, включающей первую миллисекунду первого дня недели, содержащего значение, указанное в поле date.
weekname(date [, shift = 0 [,weekoffset = 0]])
Эта функция возвращает значение, соответствующее метке времени первой миллисекунды лунной недели, содержащей значение, указанное в поле date. Лунные недели в QlikView определяются от 1 января как первого дня недели.
lunarweekstart(date [, shift = 0 [,weekoffset = 0]])
Эта функция возвращает значение, соответствующее метке времени последней миллисекунды лунной недели, содержащей значение, указанное в поле date. Лунные недели в QlikView определяются от 1 января как первого дня недели.
lunarweekend(date [, shift = 0 [,weekoffset = 0]])
Эта функция возвращает значение года и номер лунной недели, соответствующие метке времени первой миллисекунды первого дня лунной недели, содержащего значение, указанное в поле date. Лунные недели в QlikView определяются от 1 января как первого дня недели.
lunarweekname(date [, shift = 0 [,weekoffset = 0]])
Эта функция возвращает значение, соответствующее метке времени, включающей первую миллисекунду дня, содержащуюся в аргументе time. По умолчанию для вывода используется формат TimestampFormat, установленный в скрипте.
daystart(timestamp [, shift = 0 [, dayoffset = 0]])
Эта функция возвращает значение, соответствующее метке времени, включающей последнюю миллисекунду дня, содержащуюся в поле time. По умолчанию для вывода используется формат TimestampFormat, установленный в скрипте.
dayend(timestamp [, shift = 0 [, dayoffset = 0]])
Эта функция возвращает значение даты с базовым числовым значением, соответствующим метке времени, включающей первую миллисекунду дня, содержащего значение, указанное в поле time.
dayname(timestamp [, shift = 0 [, dayoffset = 0]])
Функции нумерации дней
Функция age возвращает значение возраста в момент времени, заданный в поле timestamp (полных лет), человека, дата рождения которого указана в поле date_of_birth.
age(timestamp, date_of_birth)
Функция networkdays возвращает число рабочих дней (понедельник-пятница) между и включая значения, указанные в поле start_date и end_date, учитывая выходные, которые можно дополнительно задать в поле holiday.
networkdays (start:date, end_date {, holiday})
Функция firstworkdate возвращает самую позднюю дату начала, при которой период, заданный в поле no_of_workdays (понедельник-пятница), окончится не позднее даты, заданной в поле end_date, с учетом возможных выходных. Поля end_date и holiday должны быть действительными датами или метками времени.
firstworkdate(end_date, no_of_workdays {, holiday} )
Функция lastworkdate возвращает самую раннюю дату окончания для достижения указанного числа рабочих дней no_of_workdays (понедельник-пятница) с начальной датой start_date и с учетом выходных, которые можно дополнительно задать в поле holiday. Поля start_date и holiday должны быть действительными датами или метками времени.
lastworkdate(start_date, no_of_workdays {, holiday})
Эта функция вычисляет номер дня года, на который приходится метка времени. Вычисление выполняется с первой миллисекунды первого дня года, но первый месяц может быть смещен.
daynumberofyear(date[,firstmonth])
Эта функция вычисляет номер дня квартала, на который приходится метка времени.
daynumberofquarter(date[,firstmonth])