monthname - 脚本和图表函数
此函数用于返回一个显示值,该值显示该月(根据 MonthNames 脚本变量的格式)以及年,伴随一个与该月第一天第一毫秒的时间戳对应的基础数值。
语法:
MonthName(date[, period_no])
返回数据类型: 双
参数 | 说明 |
---|---|
date | 要评估的日期或时间戳。 |
period_no | period_no 为整数,如果为 0 或忽略,表示该月包含 date。period_no 为负数表示前几月,为正数则表示随后的几月。 |
示例 | 结果 |
---|---|
monthname('10/19/2013') | 返回 Oct 2013 |
monthname('10/19/2013', -1) | 返回 Sep 2013 |
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。有关详细信息,请参阅修改应用程序和脚本的区域设置。
应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud 用户界面中显示的语言无关。Qlik Cloud 将以与您使用的浏览器相同的语言显示。
如果你是应用程序创建者,你可以为自己创建的应用程序设置默认区域。有关更多信息,请参阅设置 Qlik Cloud 分析 中创建应用程序和脚本所用的首选区域设置。
示例 1 – 基本示例
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
包含 2022 年交易集的数据集,该数据集加载到名为 Transactions 的表中。
-
日期字段已以 DateFormat 系统变量 (MM/DD/YYYY) 格式提供。
-
创建一个字段 transaction_month,该字段返回事务发生前的月末的时间戳。
加载脚本
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
monthname(date) as transaction_month
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
date
-
transaction_month
日期 | transaction_month |
---|---|
1/7/2022 | Jan 2022 |
1/19/2022 | Jan 2022 |
2/5/2022 | Feb 2022 |
2/28/2022 | Feb 2022 |
3/16/2022 | Mar 2022 |
4/1/2022 | Apr 2022 |
5/7/2022 | May 2022 |
5/16/2022 | May 2022 |
6/15/2022 | Jun 2022 |
6/26/2022 | Jun 2022 |
7/9/2022 | Jul 2022 |
7/22/2022 | Jul 2022 |
7/23/2022 | Jul 2022 |
7/27/2022 | Jul 2022 |
8/2/2022 | Aug 2022 |
8/8/2022 | Aug 2022 |
8/19/2022 | Aug 2022 |
9/26/2022 | Sep 2022 |
10/14/2022 | Oct 2022 |
10/29/2022 | Oct 2022 |
通过使用 monthname() 函数并将 date 字段作为函数的参数传递,在前置 Load 语句中创建了 transaction_month 字段。
monthname() 函数识别交易 8192 发生在 2022 年 3 月,并使用 MonthNames 系统变量返回该值。
示例 2 – period_no
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
与第一个示例相同的内联数据集和场景。
-
创建一个字段 transaction_previous_month,该字段返回事务发生前的月末的时间戳。
加载脚本
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*,
monthname(date,-1) as transaction_previous_month
;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
date
-
transaction_previous_month
日期 | transaction_previous_month |
---|---|
1/7/2022 | Dec 2021 |
1/19/2022 | Dec 2021 |
2/5/2022 | Jan 2022 |
2/28/2022 | Jan 2022 |
3/16/2022 | Feb 2022 |
4/1/2022 | Mar 2022 |
5/7/2022 | Apr 2022 |
5/16/2022 | Apr 2022 |
6/15/2022 | May 2022 |
6/26/2022 | May 2022 |
7/9/2022 | Jun 2022 |
7/22/2022 | Jun 2022 |
7/23/2022 | Jun 2022 |
7/27/2022 | Jun 2022 |
8/2/2022 | Jul 2022 |
8/8/2022 | Jul 2022 |
8/19/2022 | Jul 2022 |
9/26/2022 | Aug 2022 |
10/14/2022 | Sep 2022 |
10/29/2022 | Sep 2022 |
在本例中,由于 monthname() 函数中使用了为 -1 的 period_no 作为偏移参数,因此函数首先标识交易发生的月份。然后转移到一个月前,并返回月份名称和年份。
交易 8192 发生在 3 月 16 日。monthname() 函数确定交易发生前的月份是二月,并以 MonthNames 系统变量格式返回该月份以及 2022 年。
示例 3 – 图表对象示例
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含与第一个示例相同的数据集和场景。然而,在本例中,未更改的数据集被加载到应用程序中。返回事务发生时月末的时间戳的计算作为应用程序的图表对象中的度量创建。
加载脚本
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:date。
创建以下度量:
=monthname(date)
日期 | =monthname(date) |
---|---|
1/7/2022 | Jan 2022 |
1/19/2022 | Jan 2022 |
2/5/2022 | Feb 2022 |
2/28/2022 | Feb 2022 |
3/16/2022 | Mar 2022 |
4/1/2022 | Apr 2022 |
5/7/2022 | May 2022 |
5/16/2022 | May 2022 |
6/15/2022 | Jun 2022 |
6/26/2022 | Jun 2022 |
7/9/2022 | Jul 2022 |
7/22/2022 | Jul 2022 |
7/23/2022 | Jul 2022 |
7/27/2022 | Jul 2022 |
8/2/2022 | Aug 2022 |
8/8/2022 | Aug 2022 |
8/19/2022 | Aug 2022 |
9/26/2022 | Sep 2022 |
10/14/2022 | Oct 2022 |
10/29/2022 | Oct 2022 |
通过使用 monthname() 函数并将 date 字段作为函数的参数传递,在图表对象中创建 month_name 度量。
monthname() 函数识别交易 8192 发生在 2022 年 3 月,并使用 MonthNames 系统变量返回该值。