today - 脚本和图表函数在该页面上
此函数用于返回当前日期。函数以 DateFormat 系统变量格式返回值。
语法:
today( [
timer_mode] )
返回数据类型: 双
today() 函数可以在加载脚本或图表对象中使用。
默认 timer_mode 值为 1。
参数
timer_mode
可以具有以下值:
0(最后完成的数据加载的日子) 1(函数调用的日子) 2(应用程序打开的日子)
信息注释 如果在加载脚本中使用此函数,则 timer_mode=0 将会生成最后完成数据加载的日期,而 timer_mode=1 将会提供当前数据加载的日期。
函数示例
0
以 DateFormat 系统变量格式返回最近一次数据重新加载之前最后一次成功数据重新加载的日期。
以 DateFormat 系统变量格式返回最新数据重新加载的日期。
1
以 DateFormat 系统变量格式返回最新数据重新加载的日期。
以 DateFormat 系统变量格式返回函数调用的日期。
2
以 DateFormat 系统变量格式返回应用程序中用户会话开始的日期。除非用户重新加载脚本,否则不会更新该脚本。
以 DateFormat 系统变量格式返回应用程序中用户会话开始的日期。一旦新会话开始或重新加载应用程序中的数据,将刷新此属性。
适用场景
today() 函数通常用作表达式中的组件。例如,它可用于计算截至当前日期的一个月内累积的利息。
下表提供了 today() 函数返回的结果的解释,给出了 timer_mode 参数的不同值:
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。
应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。
示例 1 – 使用加载脚本生成对象
加载脚本和结果
概述
以下示例使用 today() 函数创建三个变量。每个变量都使用其中一个 timer_mode 选项来演示其效果。
为了演示变量的用途,请重新加载脚本,然后在 24 小时后再次重新加载脚本。这将导致 today(0) 和 today(1) 变量显示不同的值,从而正确地显示它们的用途。
加载脚本
LET vPreviousDataLoad = today(0);
LET vCurrentDataLoad = today(1);
LET vApplicationOpened = today(2);
结果
第二次加载数据后,使用下面的说明创建三个文本框。
首先,为先前加载的数据创建一个文本框。
执行以下操作:
使用文本和图像 图表对象,创建一个文本框。
将以下度量值添加到对象:
=vPreviousDataLoad
在外观 下,选择 Show titles 并向对象添加标题“上次重新加载时间”。
接下来,为当前正在加载的数据创建一个文本框。
执行以下操作:
使用文本和图像 图表对象,创建一个文本框。
将以下度量值添加到对象:
=vCurrentDataLoad
在外观 下,选择 Show titles 并向对象添加标题“当前重新加载时间”。
创建最后一个文本框,以显示用户在应用程序中的会话何时启动。
执行以下操作:
使用文本和图像 图表对象,创建一个文本框。
将以下度量值添加到对象:
=vApplicationOpened
在外观 下,选择 Show titles 并向对象添加标题“用户会话已开始”。
使用加载脚本中的 today() 函数创建的变量图
上图显示了每个已创建变量的示例值。例如,这些值可以如下所示:
上次重新加载时间:06/22/2022
当前重新加载时间:06/23/2022
用户会话开始:06/23/2022
示例 2 –不使用加载脚本生成对象
加载脚本和图表表达式
概述
以下示例使用 today() 函数创建三个图表对象。每个图表对象都使用其中一个 timer_mode 选项来演示其效果。
此示例没有加载脚本。
结果
第二次加载数据后,创建三个文本框。
首先,为最新数据重新加载创建一个文本框。
执行以下操作:
使用文本和图像 图表对象,创建一个文本框。
添加以下度量:
=today(0)
在外观 下,选择 Show titles 并将标题“最新数据重新加载”添加到对象。
接下来,创建一个文本框以显示当前时间。
执行以下操作:
使用文本和图像 图表对象,创建一个文本框。
添加以下度量:
=today(1)
在外观 下,选择 Show titles 并向对象添加标题“当前时间”。
创建最后一个文本框,以显示用户在应用程序中的会话何时启动。
执行以下操作:
使用文本和图像 图表对象,创建一个文本框。
添加以下度量:
=today(2)
在外观 下,选择 Show titles 并向对象添加标题“用户会话开始”。
使用无加载脚本的 today() 函数创建的对象的图表
上图显示了每个已创建对象的示例值。例如,这些值可以如下所示:
最后数据重新加载时间:06/23/2022
当前时间:06/23/2022
用户会话开始:06/23/2022
“最新数据重新加载”图表对象使用值为 0 的 timer_mode 。这将返回上次成功重新加载数据的时间戳。
“当前时间”图表对象使用为 1 的 timer_mode 值。这将根据系统时钟返回当前时间。如果刷新了工作表或对象,则将更新此值。
“用户会话开始”图表对象使用值为 2 的 timer_mode 。这将返回应用程序打开和用户会话开始的时间戳。
示例 3 – 场景
加载脚本和图表表达式
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
最终用户希望有一个图表对象,该对象按贷款 ID 显示月初至今每笔贷款的应计利息。尽管应用程序每周只重新加载一次,但用户希望在刷新对象或应用程序时刷新结果。
加载脚本
Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
结果
执行以下操作:
加载数据并打开工作表。新建表格。
添加以下字段作为维度:
接下来,创建一个度量来计算累计利息:
=start_balance*(rate*(today(1)-monthstart(today(1)))/365)
将度量的数字格式 设置为金额 。
结果表
8188
$10000.00
$16.44
8189
$15000.00
$58.56
8190
$17500.00
$28.77
8191
$21000.00
$48.90
8192
$90000.00
$517.81
monthstart() 函数使用 today() 函数返回今天的日期作为唯一参数,返回当前月份的开始日期。通过从当前日期中减去该结果,再次使用 today() 函数,该表达式返回本月迄今为止已过的天数。
然后将该值乘以利率并除以 365,以返回该期间产生的实际利率。然后将结果乘以贷款的起始余额,以返回本月迄今为止累计的利息。
由于表达式内的 today() 函数中使用值 1 作为 timer_mode 参数,因此每次刷新图表对象时(通过打开应用程序、刷新页面、在工作表之间移动等),返回的日期将为当前日期,结果将相应刷新。