# addyears 指令碼與圖表函數

此函數會傳回 startdate 後 n 年的日期，或者如果 n 是負數，則傳回 startdate 之前 n 年的日期。

語法：

AddYears(startdate, n)

傳回的資料類型： 雙值

`addyears()` 函數的範例圖表

`addyears()` 函數的範例圖表

`addyears()`addyears() 函數的範例圖表 ![範例圖表顯示 addyears 函數的各種元件如何共同產生輸出日期。](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears_overview.png)

`addyears()` 函數對 `startdate` 加上或減去定義的年數 `n`。然後這會傳回產生的日期。

引數

| 引數 | 描述 |
| --- | --- |
| startdate | 以時間戳記表示的開始日期，例如 '2012-10-12'。 |
| n | 以正整數或負整數表示的年份數。 |

函數範例

| 範例 | 結果 |
| --- | --- |
| `addyears ('01/29/2010',3)` | 傳回「01/29/2013」。 |
| `addyears ('01/29/2010',-1)` | 傳回「01/29/2009」。 |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。

應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典，資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 將會以您正在使用的瀏覽器語言顯示。

## 範例 1 - 簡單範例

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

#### 載入指令碼和結果

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 包含一組 2020 年和 2022 年之間交易的資料集，這載入到稱為「`Transactions`」的表格中。

* 以 `DateFormat` 系統變數 (MM/DD/YYYY) 格式提供的日期欄位。

* 建立欄位 `two_years_later`，這傳回交易發生後兩年的日期。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        addyears(date,2) as two_years_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`

* `two_years_later`

結果表格

| 日期 | two\_years\_later |
| --- | --- |
| 01/10/2020 | 01/10/2022 |
| 02/28/2020 | 02/28/2022 |
| 04/09/2020 | 04/09/2022 |
| 04/16/2020 | 04/16/2022 |
| 05/21/2020 | 05/21/2022 |
| 08/14/2020 | 08/14/2022 |
| 10/07/2020 | 10/07/2022 |
| 12/05/2020 | 12/05/2022 |
| 01/22/2021 | 01/22/2023 |
| 02/03/2021 | 02/03/2023 |
| 03/17/2021 | 03/17/2023 |
| 04/23/2021 | 04/23/2023 |
| 05/04/2021 | 05/04/2023 |
| 06/30/2021 | 06/30/2023 |
| 07/26/2021 | 07/26/2023 |
| 12/27/2021 | 12/27/2023 |
| 02/02/2022 | 02/02/2024 |
| 02/26/2022 | 02/26/2024 |
| 03/07/2022 | 03/07/2024 |
| 03/11/2022 | 03/11/2024 |

「`two_years_later`」欄位使用 `addyears()` 函數在前置 LOAD 陳述式中建立。提供的第一個引數識別正在評估哪個日期。第二個引數是要從開始日期加上或減去的年數。在此例中，提供的值為 2。

`addyears()` 函數的圖表，基本範例

`addyears()` 函數的圖表，基本範例

`addyears()`addyears() 函數的圖表，基本範例 ![addyears 函數的圖表顯示載入指令碼中的交易 8193 如何從輸入日期轉換為產生的輸出日期。](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears-examples-basic.png)

交易 8193 發生於 2020 年 8 月 14 日。因此， `addyears()` 函數會為 `two_years_later` 欄位傳回 2022 年 8 月 14 日。

## 範例 2 – 圖表物件範例

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

#### 載入指令碼和圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 包含一組 2020 年和 2022 年之間交易的資料集，這載入到稱為 `Transactions` 的表格中。

* 以 `DateFormat` 系統變數 (MM/DD/YYYY) 格式提供的日期欄位。

在圖表物件中，建立量值 `prior_year_date`，這傳回交易發生前一年的日期。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

結果

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度： `date`。

建立下列量值以計算每個交易前一年的日期：

`=addyears(date,-1)`

結果表格

| 日期 | =addyears(date,-1) |
| --- | --- |
| 01/10/2020 | 01/10/2019 |
| 02/28/2020 | 02/28/2019 |
| 04/09/2020 | 04/09/2019 |
| 04/16/2020 | 04/16/2019 |
| 05/21/2020 | 05/21/2019 |
| 08/14/2020 | 08/14/2019 |
| 10/07/2020 | 10/07/2019 |
| 12/05/2020 | 12/05/2019 |
| 01/22/2021 | 01/22/2020 |
| 02/03/2021 | 02/03/2020 |
| 03/17/2021 | 03/17/2020 |
| 04/23/2021 | 04/23/2020 |
| 05/04/2021 | 05/04/2020 |
| 06/30/2021 | 06/30/2020 |
| 07/26/2021 | 07/26/2020 |
| 12/27/2021 | 12/27/2020 |
| 02/02/2022 | 02/02/2021 |
| 02/26/2022 | 02/26/2021 |
| 03/07/2022 | 03/07/2021 |
| 03/11/2022 | 03/11/2021 |

會使用 `addyears()` 函數在圖表物件中建立 `one_year_prior` 量值。提供的第一個引數識別正在評估哪個日期。第二個引數是要從 `  startdate ` 加上或減去的年數。在此例中，提供的值為 -1。

`addyears()` 函數的圖表，圖表物件範例

`addyears()` 函數的圖表，圖表物件範例

`addyears()`addyears() 函數的圖表，圖表物件範例 ![addyears 函數的圖表顯示載入指令碼中的交易 8193 如何從輸入日期轉換為產生的輸出日期。](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears-examples-chart-object.png)

交易 8193 發生於 8 月 14 日。因此， `addyears()` 函數會為 `one_year_prior` 欄位傳回 2019 年 8 月 14 日。

## 範例 3 – 情境

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

#### 載入指令碼和圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Warranties` 之表格的資料集。

* 含有產品 ID、購買日期、保固長度和購買價格的資訊。

最終使用者希望圖表物件依產品 ID 顯示每個產品的保固終止日期。

載入指令碼

```
Warranties:
Load
*
Inline 
[
product_id,purchase_date,warranty_length,purchase_price
8188,'01/13/2020',4,32000
8189,'02/26/2020',2,28000
8190,'03/27/2020',3,41000
8191,'04/16/2020',4,17000
8192,'05/21/2020',2,25000
8193,'08/14/2020',1,59000
8194,'10/07/2020',2,12000
8195,'12/05/2020',3,12000
8196,'01/22/2021',4,24000
8197,'02/03/2021',1,50000
8198,'03/17/2021',2,80000
8199,'04/23/2021',3,10000
8200,'05/04/2021',4,30000
8201,'06/30/2021',3,30000
8202,'07/26/2021',4,20000
8203,'12/27/2021',4,10000
8204,'06/06/2022',2,25000
8205,'07/18/2022',1,32000
8206,'11/14/2022',1,30000
8207,'12/12/2022',4,22000
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `product_id`

* `purchase_date`

* `warranty_length`

建立下列量值以計算每個產品保固的結束日期：

`=addyears(purchase_date,warranty_length)`

結果表格

| product\_id | purchase\_date | warranty\_length | =addyears(purchase\_date,warranty\_length) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 4 | 01/13/2024 |
| 8189 | 02/26/2020 | 2 | 02/26/2022 |
| 8190 | 03/27/2020 | 3 | 03/27/2023 |
| 8191 | 04/16/2020 | 4 | 04/16/2024 |
| 8192 | 05/21/2020 | 2 | 05/21/2022 |
| 8193 | 08/14/2020 | 1 | 08/14/2021 |
| 8194 | 10/07/2020 | 2 | 10/07/2022 |
| 8195 | 12/05/2020 | 3 | 12/05/2023 |
| 8196 | 01/22/2021 | 4 | 01/22/2025 |
| 8197 | 02/03/2021 | 1 | 02/03/2022 |
| 8198 | 03/17/2021 | 2 | 03/17/2023 |
| 8199 | 04/23/2021 | 3 | 04/23/2024 |
| 8200 | 05/04/2021 | 4 | 05/04/2025 |
| 8201 | 06/30/2021 | 3 | 06/30/2024 |
| 8202 | 07/26/2021 | 4 | 07/26/2025 |
| 8203 | 12/27/2021 | 4 | 12/27/2025 |
| 8204 | 06/06/2022 | 2 | 06/06/2024 |
| 8205 | 07/18/2022 | 1 | 07/18/2023 |
| 8206 | 11/14/2022 | 1 | 11/14/2023 |
| 8207 | 12/12/2022 | 4 | 12/12/2026 |