

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon QLDB 中的 DATE\$1DIFF 函数
<a name="ql-functions.date_diff"></a>

**重要**  
终止支持通知：现有客户将能够使用 Amazon QLDB，直到 2025 年 7 月 31 日终止支持。有关更多详细信息，请参阅[将亚马逊 QLDB 账本迁移到亚马逊 Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `DATE_DIFF` 函数返回两个给定时间戳中指定日期部分之间的差值。

## 语法
<a name="ql-functions.date_diff.syntax"></a>

```
DATE_DIFF( datetimepart, timestamp1, timestamp2 )
```

## Arguments
<a name="ql-functions.date_diff.arguments"></a>

*datetimepart*  
对其执行函数的日期或时间段。该参数可以是下列项之一：  
+ `year`
+ `month`
+ `day`
+ `hour`
+ `minute`
+ `second`

*timestamp1*, *timestamp2*  
函数比较的数据类型 `timestamp` 的两个字段名称或表达式。如果晚*timestamp2*于*timestamp1*，则结果为阳性。如果早*timestamp2*于*timestamp1*，则结果为负。  
Ion 时间戳文本值可以用反引号（``...``）表示。有关时间戳值的格式详细信息和示例，请参阅 Amazon Ion 规格文档中的[时间戳](https://amzn.github.io/ion-docs/docs/spec.html#timestamp)。

## 返回类型
<a name="ql-functions.date_diff.return-type"></a>

`int`

## 示例
<a name="ql-functions.date_diff.examples"></a>

```
DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`)            -- 1
DATE_DIFF(year, `2010-12T`, `2011-01T`)                  -- 0 (must be at least 12 months apart to evaluate as a 1 year difference)
DATE_DIFF(month, `2010T`, `2010-05T`)                    -- 4 (2010T is equivalent to 2010-01-01T00:00:00.000Z)
DATE_DIFF(month, `2010T`, `2011T`)                       -- 12
DATE_DIFF(month, `2011T`, `2010T`)                       -- -12
DATE_DIFF(month, `2010-12-31T`, `2011-01-01T`)           -- 0 (must be at least a full month apart to evaluate as a 1 month difference)
DATE_DIFF(day, `2010-01-01T23:00Z`, `2010-01-02T01:00Z`) -- 0 (must be at least 24 hours apart to evaluate as a 1 day difference)

-- Runnable statements
SELECT DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`) FROM << 0 >> -- 1
SELECT DATE_DIFF(month, `2010T`, `2010-05T`) FROM << 0 >>         -- 4
```

## 相关函数
<a name="ql-functions.date_diff.related"></a>
+ [DATE\$1ADD](ql-functions.date_add.md)
+ [EXTRACT](ql-functions.extract.md)
+ [TO\$1STRING](ql-functions.to_string.md)
+ [TO\$1TIMESTAMP](ql-functions.to_timestamp.md)
+ [UTCNOW](ql-functions.utcnow.md)