# month 脚本和图表功能

此函数用于返回包含在环境变量 MonthNames 中定义的月份名称的对偶值和一个介于 1 至 12 的整数。月份根据标准数字解释通过表达式的日期解释进行计算。

函数以 `MonthName` 系统变量的格式返回特定日期的月份名称。它通常用于在主日历中创建日期字段作为维度。

语法：

month(expression)

返回数据类型： 整数

函数示例

| 示例 | 结果 |
| --- | --- |
| `month(<br>2012-10-12 )` | 返回 Oct |
| `month(<br>35648 )` | 返回 Aug，因为 35648 = 1997-08-06 |

## 示例 1 – DateFormat 数据集（脚本）

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/month.htm)

#### 加载脚本和结果

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 名称为 `Master_Calendar` 的日期数据集。`DateFormat` 系统变量设置为 DD/MM/YYYY。

* 使用 `  month() ` 函数创建另一个名为 `month_name` 的字段的前置 Load。

* 另一个名为 `long_date` 的字段，使用 `date()` 功能表示完整的日期。

加载脚本

```

SET DateFormat='DD/MM/YYYY';

Master_Calendar:
Load
        date,
        date(date,'dd-MMMM-YYYY') as long_date,
        month(date) as month_name
Inline 
[
date
03/01/2022
03/02/2022
03/03/2022
03/04/2022
03/05/2022
03/06/2022
03/07/2022
03/08/2022
03/09/2022
03/10/2022
03/11/2022
];
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `date`

* `long_date`

* `month_name`

结果表

| 日期 | long\_date | 月份名称 |
| --- | --- | --- |
| 03/01/2022 | 2022 年 1 月 3 日 | 一月 |
| 03/02/2022 | 2022 年 2 月 3 日 | 二月 |
| 03/03/2022 | 2022 年 3 月 3 日 | 三月 |
| 03/04/2022 | 2022 年 4 月 3 日 | 四月 |
| 03/05/2022 | 2022 年 5 月 3 日 | 五月 |
| 03/06/2022 | 2022 年 6 月 3 日 | 六月 |
| 03/07/2022 | 2022 年 7 月 3 日 | 7 月 |
| 03/08/2022 | 2022 年 8 月 3 日 | 8 月 |
| 03/09/2022 | 2022 年 9 月 3 日 | 9 月 |
| 03/10/2022 | 2022 年 10 月 3 日 | 10 月 |
| 03/11/2022 | 2022 年 11 月 3 日 | 11 月 |

脚本中的 `month()` 函数可以正确计算月份的名称。

## 示例 2–ANSI 日期（脚本）

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/month.htm)

#### 加载脚本和结果

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 名称为 `Master_Calendar` 的日期数据集。使用 DateFormat 系统变量 DD/MM/YYYY。但是，数据集中包含的日期采用 ANSI 标准日期格式。

* 使用 month() 功能创建另一个名为 `month_name` 的字段的前置 Load。

* 另一个名为 `long_date` 的字段，使用 date() 函数表示完整的日期。

加载脚本

```

SET DateFormat='DD/MM/YYYY'; 
Master_Calendar: 
Load 
       date, 
       date(date,'dd-MMMM-YYYY') as long_date, 
       month(date) as month_name 

Inline  
[ 
date 
2022-01-11 
2022-02-12 
2022-03-13 
2022-04-14 
2022-05-15 
2022-06-16 
2022-07-17 
2022-08-18 
2022-09-19
2022-10-20 
2022-11-21 
]; 
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `date`

* `long_date`

* `month_name`

结果表

| 日期 | long\_date | 月份名称 |
| --- | --- | --- |
| 03/11/2022 | 2022 年 3 月 11 日 | 11 |
| 03/12/2022 | 2022 年 3 月 12 日 | 12 |
| 03/13/2022 | 2022 年 3 月 13 日 | 13 |
| 03/14/2022 | 2022 年 3 月 14 日 | 14 |
| 03/15/2022 | 2022 年 3 月 15 日 | 15 |
| 03/16/2022 | 2022 年 3 月 16 日 | 16 |
| 03/17/2022 | 2022 年 3 月 17 日 | 17 |
| 03/18/2022 | 2022 年 3 月 18 日 | 18 |
| 03/19/2022 | 2022 年 3 月 19 日 | 19 |
| 03/20/2022 | 2022 年 3 月 20 日 | 20 |
| 03/21/2022 | 2022 年 3 月 21 日 | 21 |

脚本中的 `month()` 函数可以正确计算月份的名称。

## 示例 3 – 未格式化日期（脚本）

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/month.htm)

#### 加载脚本和结果

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 名称为 `Master_Calendar` 的日期数据集。使用 `  DateFormat ` 系统变量 DD/MM/YYYY。

* 使用 ` month()  ` 功能创建另一个名为 `month_name` 的字段的前置 Load。

* 原始未格式化日期，命名为 `unformatted_date`。

* 另一个名为 `long_date` 的字段，使用 `  date() ` 功能表示完整的日期。

加载脚本

```

SET DateFormat='DD/MM/YYYY'; 

Master_Calendar: 
Load 
      unformatted_date, 
      date(unformatted_date,'dd-MMMM-YYYY') as long_date, 
      month(unformatted_date) as month_name 

Inline
[ 
unformatted_date 
44868 
44898 
44928 
44958 
44988 
45018 
45048 
45078 
45008 
45038 
45068 
]; 
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `unformatted_date`

* `long_date`

* `month_name`

结果表

| unformatted\_date | long\_date | 月份名称 |
| --- | --- | --- |
| 44868 | 2022 年 1 月 3 日 | 一月 |
| 44898 | 2022 年 2 月 3 日 | 二月 |
| 44928 | 2022 年 3 月 3 日 | 三月 |
| 44958 | 2022 年 4 月 3 日 | 四月 |
| 44988 | 2022 年 5 月 3 日 | 五月 |
| 45018 | 2022 年 6 月 3 日 | 六月 |
| 45048 | 2022 年 7 月 3 日 | 7 月 |
| 45078 | 2022 年 8 月 3 日 | 8 月 |
| 45008 | 2022 年 9 月 3 日 | 9 月 |
| 45038 | 2022 年 10 月 3 日 | 10 月 |
| 45068 | 2022 年 11 月 3 日 | 11 月 |

脚本中的 `month()` 函数可以正确计算月份的名称。

## 示例 4 – 计算到期月

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/month.htm)

#### 加载脚本和图表表达式

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 名为 `Subscriptions` 的 3 月订单数据集。表格包含三个字段：

  * id

  * 订单日期

  * 金额

加载脚本

```

Subscriptions: 
Load 
	 id, 
	 order_date, 
	 amount 
Inline  
[ 
id,order_date,amount 
1,03/01/2022,231.24 
2,03/02/2022,567.28 
3,03/03/2022,364.28 
4,03/04/2022,575.76 
5,03/05/2022,638.68 
6,03/06/2022,785.38 
7,03/07/2022,967.46 
8,03/08/2022,287.67 
9,03/09/2022,764.45 
10,03/10/2022,875.43 
11,03/11/2022,957.35 
]; 

```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度： `order_date`。

要计算订单的到期月份，请创建以下度量：`=month(order_date+180)`。

结果表

| 订单日期 | =月(订单日期+180) |
| --- | --- |
| 03/01/2022 | 7 月 |
| 2022/03/02 | 8 月 |
| 2022/03/03 | 8 月 |
| 03/04/2022 | 9 月 |
| 03/05/2022 | 10 月 |
| 03/06/2022 | 11 月 |
| 03/07/2022 | 12 月 |
| 03/08/2022 | 一月 |
| 2022/03/09 | 三月 |
| 2022/03/10 | 四月 |
| 03/11/2022 | 五月 |

`month()` 函数正确地确定了3月11日下达的订单将于7月到期。

## 了解详情

* [从之前加载的表格中加载数据](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm)