DateFormat
此环境变量定义了应用程序中默认使用的日期格式以及按日期返回函数,如 date() 和 date#()。该格式用于解释和格式化日期。如果未定义变量,则在脚本运行时获取由区域设置设定的日期格式。
语法:
DateFormat
Example | 结果 |
---|---|
Set DateFormat='M/D/YY'; //(US format) | DateFormat 函数的使用将日期定义为美国格式,月/日/年。 |
Set DateFormat='DD/MM/YY'; //(UK date format) | DateFormat 函数的使用将日期定义为英国格式,日/月/年。 |
Set DateFormat='YYYY/MM/DD'; //(ISO date format) | DateFormat 函数的使用将日期定义为 ISO 格式,年/月/日。 |
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。
应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。
1 – 系统变量默认值
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
日期数据集。
-
DateFormat 函数,将使用美国日期格式。
在本例中,将数据集加载到名为 ‘Transactions’ 的表中。它包括一个 date 字段。使用美国 DateFormat 定义。加载文本日期时,此模式将用于隐式文本到日期的转换。
加载脚本
Set DateFormat='MM/DD/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
date
-
month
创建该度量:
=sum(amount)
日期 | 月 | =sum(amount) |
---|---|---|
01/01/2022 | 一月 | 1000 |
02/01/2022 | 二月 | 2123 |
03/01/2022 | 三月 | 4124 |
04/01/2022 | 四月 | 2431 |
DateFormat 定义 MM/DD/YYYY 用于将文本隐式转换为日期,这就是为什么 date 字段被正确解释为日期的原因。相同的格式用于显示日期,如结果表所示。
示例 2 – 更改系统变量
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
上一 中的相同数据集。
-
DateFormat 函数将使用“DD/MM/YYYY”格式。
加载脚本
SET DateFormat='DD/MM/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
date
-
month
创建该度量:
=sum(amount)
日期 | 月 | =sum(amount) |
---|---|---|
01/01/2022 | 一月 | 1000 |
02/01/2022 | 一月 | 2123 |
03/01/2022 | 一月 | 4124 |
04/01/2022 | 一月 | 2431 |
由于 DateFormat 定义被设置为 “DD/MM/YYYY”,您可以看到,第一个“/”符号后的两位数字被解释为月份,因此所有记录都来自一月。
示例 3 – 日期解释
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
以数字格式显示日期的数据集。
-
DateFormat 变量将使用 ‘DD/MM/YYYY’ 格式。
-
date() 变量,
加载脚本
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
date(numerical_date),
month(date(numerical_date)) as month,
id,
amount
Inline
[
numerical_date,id,amount
43254,1,1000
43255,2,2123
43256,3,4124
43258,4,2431
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
date
-
month
创建该度量:
=sum(amount)
日期 | 月 | =sum(amount) |
---|---|---|
06/03/2022 | 六月 | 1000 |
06/04/2022 | 六月 | 2123 |
06/05/2022 | 六月 | 4124 |
06/07/2022 | 六月 | 2431 |
在加载脚本中,使用 date() 函数将数字日期转换为日期格式。因为您没有在函数中提供指定的格式作为第二个参数,所以使用了 DateFormat 格式。这将导致日期字段使用的格式为 “MM/DD/YYYY”。
示例 4 – 外部日期格式
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
日期数据集。
-
DateFormat 变量,其使用 ‘DD/MM/YYYY' 格式,但未使用正斜杠注释。
加载脚本
// SET DateFormat='DD/MM/YYYY';
Transactions:
Load
date,
month(date) as month,
id,
amount
Inline
[
date,id,amount
22-05-2022,1,1000
23-05-2022,2,2123
24-05-2022,3,4124
25-05-2022,4,2431
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
date
-
month
创建该度量:
=sum(amount)
日期 | 月 | =sum(amount) |
---|---|---|
22-05-2022 | - | 1000 |
23-05-2022 | - | 2123 |
24-05-2022 | - | 4124 |
25-05-2022 | - | 2431 |
在初始加载脚本中,DateFormat 使用的是默认的“MM/DD/YYYY”。由于交易数据集中的 date 字段不是此格式,因此该字段不会解释为日期。这显示在结果表中,其中 month 字段值为空。
通过检查 date 字段的“标记”属性,可以在数据模型查看器中验证已解释的数据类型:
Transactions 表格的预览。请注意,date 字段的“标记”表示文本输入数据尚未隐式转换为日期/时间戳。

这可以通过启用 DateFormat 系统变量来解决:
// SET DateFormat='DD/MM/YYYY';
删除双正斜杠并重新加载数据。
Transactions 表格的预览。请注意,date 字段的“标记”表示文本输入数据已隐式转换为日期/时间戳。
