DateFormat在该页面上
此环境变量 定义了应用程序 中默认使用的日期格式以及按日期返回函数,如 date() 和 date#() 。该格式用于解释和格式化日期。如果未定义变量,则在脚本运行时获取由区域设置设定的日期格式。
语法:
DateFormat
DateFormat 函数示例
示例
结果
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 Cloud 用户界面中显示的语言无关。Qlik Cloud 将以与您使用的浏览器相同的语言显示。
如果你是应用程序创建者,你可以为自己创建的应用程序设置默认区域。有关更多信息,请参阅设置 Qlik Cloud 分析 中创建应用程序和脚本所用的首选区域设置 。
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
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度 :
创建该度量 :
=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 – 更改系统变量
加载脚本和结果
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载脚本
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
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度 :
创建该度量:
=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 – 日期解释
加载脚本和结果
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载脚本
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
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度 :
创建该度量:
=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 – 外部日期格式
加载脚本和结果
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载脚本
// 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
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度 :
创建该度量:
=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 字段的“标记”表示文本输入数据已隐式转换为日期/时间戳。