日期和时间函数
Qlik Sense 日期和时间函数用于变换和转换日期和时间值。所有函数均可用于数据加载脚本和图表表达式。
这些函数基于日期-时间序列号(等于从 1899 年 12 月 30 日开始的天数)。整数部分表示天数,分数部分表示一天的时间。
Qlik Sense 使用该参数的数值,所以数字即使没有格式化为日期或时间,也可以作为参数的有效值。例如,如果参数与数值不对应(因为它是一个字符串),则 Qlik Sense 会尝试根据日期和时间环境变量解释此字符串。
如果在参数中使用的时间格式与环境变量设置不一致,Qlik Sense 将不会做出正确的解释。要解决此问题,可更改设置或使用解释功能。
在每个函数的示例中,假设默认的时间和日期格式为 hh:mm:ss 和 YYYY-MM-DD (ISO 8601)。
在处理具有日期或时间函数的时间戳时,Qlik Sense 会忽略所有夏令时参数,除非日期或时间函数包含地理位置。
例如,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(expression)
此函数用于返回包含在环境变量 MonthNames 中定义的月份名称的对偶值和一个介于 1 至 12 的整数。月份根据标准数字解释通过表达式的日期解释进行计算。
month(expression)
此函数用于根据标准数字解释当 expression 被解释为日期时返回一个表示年份的整数。
year(expression)
Timestamp 函数
此函数用于返回指定时区的当前时间戳。
localtime([timezone [, ignoreDST ]])
Make 函数
此函数用于返回根据年份 YYYY、月份 MM 和日期 DD 计算的日期。
makedate(YYYY [ , MM [ , DD ] ])
此函数用于返回根据小时 hh、分钟 mm 和秒 ss 计算的时间。
maketime(hh [ , mm [ , ss [ .fff ] ] ])
其他日期函数
此函数用于返回在 startdate 后 n 个月内发生的日期,或者如果 n 为负数,则用于返回 startdate 前 n 个月内发生的日期。
addmonths(startdate, n , [ , mode])
此函数用于返回在 startdate 后 n 年内发生的日期,或者如果 n 为负数,则用于返回 startdate 前 n 年内发生的日期。
addyears(startdate, n)
此函数用于判断输入时间戳是否在最后加载脚本的日期的年份以内,并返回 True(如果在)或返回 False(如果不在)。
yeartodate(date [ , yearoffset [ , firstmonth [ , todaydate] ] ])
Timezone 函数
此函数返回在 Qlik 引擎运行的计算机上定义的时区。
timezone( )
此函数用于返回来自地区设置的当前 Greenwich Mean Time。
GMT( )
用于返回当前 Coordinated Universal Time。
UTC( )
用于返回如 Windows 所定义的当下为日间省时的调整。
将 UTC 或 GMT 时间戳转换为本地时间作为对偶值。此地方可为全世界任何一个城市,地方和时区。
converttolocaltime(timestamp [, place [, ignore_dst=false]])
设置时间函数
此函数用于输入 timestamp 和 year ,并使用在输入中指定的 year 更新 timestamp 。
setdateyear (timestamp, year)
此函数用于输入 timestamp、month 和 year ,并使用在输入中指定的 year 和 month 更新 timestamp 。
setdateyearmonth (timestamp, year, month)
In... 函数
此函数用于返回 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,如果 date 位于包含 basedate 为止以及包括 basedate 最后毫秒的月份部分以内。
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])
此函数用于判断 timestamp 是否位于包含 base_date 的阴历周以内。Qlik Sense 中的农历周定义为将 1 月 1 日计算为一周的第一天。除了一年中的最后一周外,每周都会有七天。
inlunarweek (date, basedate , shift [, weekstart])
此函数用于判断 timestamp 是否位于截止以及包括 base_date 最后毫秒的阴历周的某部分以内。Qlik Sense 中的农历周定义为将 1 月 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])
Start ... end 函数
此函数用于返回与包含 date 的年份的第一天的开始时间对应的时间戳。默认的输出格式为在脚本中所设置的 DateFormat。
yearstart( date [, shift = 0 [, first_month_of_year = 1]])
此函数用于返回与包含 date 的年份的最后一天的最后毫秒时间戳对应的值。默认的输出格式为在脚本中所设置的 DateFormat。
yearend( date [, shift = 0 [, first_month_of_year = 1]])
此函数用于返回一个四位数年份的显示值,带有与包含 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])
此函数用于返回与包含基准日期的一个月、两个月、季度、四个月期间或半年的第一毫秒的时间戳对应的值。另外,它也可以用于判断上一个或下一个时间周期的时间戳。默认输出格式是在脚本中设置的 DateFormat。
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 的阴历周第一天的第一毫秒的时间戳对应的值。Qlik Sense 中的农历周定义为将 1 月 1 日计算为一周的第一天,除一年的最后一周外,将正好包含七天。
lunarweekstart(date [, shift = 0 [,weekoffset = 0]])
此函数用于返回与包含 date 的阴历周的最后毫秒的时间戳对应的值。Qlik Sense 中的农历周定义为将 1 月 1 日计算为一周的第一天,除一年的最后一周外,将正好包含七天。
lunarweekend(date [, shift = 0 [,weekoffset = 0]])
此函数用于返回一个显示值,显示与包含 date 的阴历周的第一天的第一毫秒时间戳对应的年份和阴历周数。Qlik Sense 中的农历周定义为将 1 月 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]])
Day numbering 函数
age 函数用于返回某人在 date_of_birth 出生的 timestamp(完整年份)时的年龄。
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])