

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon QLDB 中的 PartiQL 函數
<a name="ql-functions"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

Amazon QLDB 中的 PartiQL 支援下列 SQL 標準函數的內建變體。

**注意**  
QLDB 目前不支援未包含在此清單中的任何 SQL 函數。  
此函數參考是以 PartiQL 文件[內建函數](https://github.com/partiql/partiql-lang-kotlin/blob/main/docs/wiki/documentation/Functions.md#built-in-functions)為基礎。

**不明類型 （空值和遺失） 傳播**

除非另有說明，否則所有這些函數都會傳播 null 和缺少引數值。如果任何函數引數為 `NULL`或 `NULL`，*則傳播* `MISSING` `NULL`或 定義為傳回`MISSING`。以下是此傳播的範例。

```
CHAR_LENGTH(null)    -- null
CHAR_LENGTH(missing) -- null (also returns null)
```

## 彙總函數
<a name="ql-functions.aggregate"></a>
+ [AVG](ql-functions.avg.md)
+ [COUNT](ql-functions.count.md)
+ [MAX](ql-functions.max.md)
+ [MIN](ql-functions.min.md)
+ [SIZE](ql-functions.size.md)
+ [SUM](ql-functions.sum.md)

## 條件函數
<a name="ql-functions.conditional"></a>
+ [COALESCE](ql-functions.coalesce.md)
+ [EXISTS](ql-functions.exists.md)
+ [NULLIF](ql-functions.nullif.md)

## 日期和時間函數
<a name="ql-functions.date"></a>
+ [DATE\$1ADD](ql-functions.date_add.md)
+ [DATE\$1DIFF](ql-functions.date_diff.md)
+ [EXTRACT](ql-functions.extract.md)
+ [UTCNOW](ql-functions.utcnow.md)

## 純量函數
<a name="ql-functions.scalar"></a>
+ [TXID](ql-functions.txid.md)

## 字串函數
<a name="ql-functions.string"></a>
+ [CHAR\$1LENGTH](ql-functions.char_length.md)
+ [CHARACTER\$1LENGTH](ql-functions.character_length.md)
+ [LOWER](ql-functions.lower.md)
+ [SUBSTRING](ql-functions.substring.md)
+ [TRIM](ql-functions.trim.md)
+ [UPPER](ql-functions.upper.md)

## 資料類型格式化函數
<a name="ql-functions.formatting"></a>
+ [CAST](ql-functions.cast.md)
+ [TO\$1STRING](ql-functions.to_string.md)
+ [TO\$1TIMESTAMP](ql-functions.to_timestamp.md)

# Amazon QLDB 中的 AVG 函數
<a name="ql-functions.avg"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `AVG`函數傳回輸入表達式值的平均值 （算術平均值）。此函數適用於數值，並忽略 null 或缺少的值。

## 語法
<a name="ql-functions.avg.syntax"></a>

```
AVG ( expression )
```

## 引數
<a name="ql-functions.avg.arguments"></a>

*運算式*  
函數操作的數值資料類型的欄位名稱或表達式。

## 資料類型
<a name="ql-functions.avg.data-types"></a>

支援的引數類型：
+ `int`
+ `decimal`
+ `float`

傳回類型： `decimal`

## 範例
<a name="ql-functions.avg.examples"></a>

```
SELECT AVG(r.PendingPenaltyTicketAmount) FROM VehicleRegistration r  -- 147.19
SELECT AVG(a) FROM << { 'a' : 1 }, { 'a': 2 }, { 'a': 3 } >>         -- 2.
```

## 相關函數
<a name="ql-functions.avg.related"></a>
+ [COUNT](ql-functions.count.md)
+ [MAX](ql-functions.max.md)
+ [MIN](ql-functions.min.md)
+ [SIZE](ql-functions.size.md)
+ [SUM](ql-functions.sum.md)

# Amazon QLDB 中的 CAST 函數
<a name="ql-functions.cast"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `CAST`函數來評估給定表達式的值，並將該值轉換為指定的目標資料類型。如果無法進行轉換，函數會傳回錯誤。

## 語法
<a name="ql-functions.cast.syntax"></a>

```
CAST ( expression AS type )
```

## 引數
<a name="ql-functions.cast.arguments"></a>

*運算式*  
評估為函數轉換的值的欄位名稱或表達式。轉換 Null 值會傳回 Null。此參數可以是任何支援的 [資料類型](ql-reference.data-types.md)。

*type*  
用於轉換的目標資料類型名稱。此參數可以是支援的 之一[資料類型](ql-reference.data-types.md)。

## 傳回類型
<a name="ql-functions.cast.return-type"></a>

類型**引數指定的資料類型。

## 範例
<a name="ql-functions.cast.examples"></a>

下列範例顯示不明類型的傳播 (`NULL` 或 `MISSING`)。

```
CAST(null    AS null)    -- null 
CAST(missing AS null)    -- null 
CAST(missing AS missing) -- missing
CAST(null    AS missing) -- missing
CAST(null    AS boolean) -- null (null AS any data type name results in null)
CAST(missing AS boolean) -- missing (missing AS any data type name results in missing)
```

任何不是未知類型的值都無法轉換為 `NULL`或 `MISSING`。

```
CAST(true AS null)    -- error 
CAST(true AS missing) -- error
CAST(1    AS null)    -- error
CAST(1    AS missing) -- error
```

下列範例顯示投射 `AS boolean`。

```
CAST(true      AS boolean) -- true no-op
CAST(0         AS boolean) -- false
CAST(1         AS boolean) -- true
CAST(`1e0`     AS boolean) -- true (float)
CAST(`1d0`     AS boolean) -- true (decimal)
CAST('a'       AS boolean) -- false
CAST('true'    AS boolean) -- true (SqlName string 'true')
CAST(`'true'`  AS boolean) -- true (Ion symbol `'true'`)
CAST(`'false'` AS boolean) -- false (Ion symbol `'false'`)
```

下列範例顯示投射 `AS integer`。

```
CAST(true   AS integer) -- 1
CAST(false  AS integer) -- 0
CAST(1      AS integer) -- 1
CAST(`1d0`  AS integer) -- 1
CAST(`1d3`  AS integer) -- 1000
CAST(1.00   AS integer) -- 1
CAST(1.45   AS integer) -- 1
CAST(1.75   AS integer) -- 1
CAST('12'   AS integer) -- 12
CAST('aa'   AS integer) -- error
CAST(`'22'` AS integer) -- 22
CAST(`'x'`  AS integer) -- error
```

下列範例顯示投射 `AS float`。

```
CAST(true   AS float) -- 1e0
CAST(false  AS float) -- 0e0
CAST(1      AS float) -- 1e0
CAST(`1d0`  AS float) -- 1e0
CAST(`1d3`  AS float) -- 1000e0
CAST(1.00   AS float) -- 1e0
CAST('12'   AS float) -- 12e0
CAST('aa'   AS float) -- error
CAST(`'22'` AS float) -- 22e0
CAST(`'x'`  AS float) -- error
```

下列範例顯示投射 `AS decimal`。

```
CAST(true   AS decimal) -- 1.
CAST(false  AS decimal) -- 0.
CAST(1      AS decimal) -- 1.
CAST(`1d0`  AS decimal) -- 1. (REPL printer serialized to 1.)
CAST(`1d3`  AS decimal) -- 1d3
CAST(1.00   AS decimal) -- 1.00
CAST('12'   AS decimal) -- 12.
CAST('aa'   AS decimal) -- error
CAST(`'22'` AS decimal) -- 22.
CAST(`'x'`  AS decimal) -- error
```

下列範例顯示投射 `AS timestamp`。

```
CAST(`2001T`                      AS timestamp) -- 2001T
CAST('2001-01-01T'                AS timestamp) -- 2001-01-01T
CAST(`'2010-01-01T00:00:00.000Z'` AS timestamp) -- 2010-01-01T00:00:00.000Z
CAST(true                         AS timestamp) -- error
CAST(2001                         AS timestamp) -- error
```

下列範例顯示投射 `AS symbol`。

```
CAST(`'xx'`                     AS symbol) -- xx (`'xx'` is an Ion symbol)
CAST('xx'                       AS symbol) -- xx ('xx' is a string)
CAST(42                         AS symbol) -- '42'
CAST(`1e0`                      AS symbol) -- '1.0'
CAST(`1d0`                      AS symbol) -- '1'
CAST(true                       AS symbol) -- 'true'
CAST(false                      AS symbol) -- 'false'
CAST(`2001T`                    AS symbol) -- '2001T'
CAST(`2001-01-01T00:00:00.000Z` AS symbol) -- '2001-01-01T00:00:00.000Z'
```

下列範例顯示投射 `AS string`。

```
CAST(`'xx'`                     AS string) -- "xx" (`'xx'` is an Ion symbol)
CAST('xx'                       AS string) -- "xx" ('xx' is a string)
CAST(42                         AS string) -- "42"
CAST(`1e0`                      AS string) -- "1.0"
CAST(`1d0`                      AS string) -- "1"
CAST(true                       AS string) -- "true"
CAST(false                      AS string) -- "false"
CAST(`2001T`                    AS string) -- "2001T"
CAST(`2001-01-01T00:00:00.000Z` AS string) -- "2001-01-01T00:00:00.000Z"
```

下列範例顯示投射 `AS struct`。

```
CAST(`{ a: 1 }` AS struct) -- {a:1}
CAST(true       AS struct) -- err
```

下列範例顯示投射 `AS list`。

```
CAST(`[1, 2, 3]`        AS list) -- [1,2,3]
CAST(<<'a', { 'b':2 }>> AS list) -- ["a",{'b':2}]
CAST({ 'b':2 }          AS list) -- error
```

下列範例是可執行的陳述式，其中包含前面的一些範例。

```
SELECT CAST(true AS integer) FROM << 0 >>            -- 1
SELECT CAST('2001-01-01T' AS timestamp) FROM << 0 >> -- 2001-01-01T
SELECT CAST('xx' AS symbol) FROM << 0 >>             -- xx
SELECT CAST(42 AS string) FROM << 0 >>               -- "42"
```

## 相關函數
<a name="ql-functions.cast.related"></a>
+ [TO\$1STRING](ql-functions.to_string.md)
+ [TO\$1TIMESTAMP](ql-functions.to_timestamp.md)

# Amazon QLDB 中的 CHAR\$1LENGTH 函數
<a name="ql-functions.char_length"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `CHAR_LENGTH`函數來傳回指定字串中的字元數，其中*字元*定義為單一單碼碼點。

## 語法
<a name="ql-functions.char_length.syntax"></a>

```
CHAR_LENGTH ( string )
```

`CHAR_LENGTH` 是 的同義詞[Amazon QLDB 中的 CHARACTER\$1LENGTH 函數](ql-functions.character_length.md)。

## 引數
<a name="ql-functions.char_length.arguments"></a>

*string*  
函數評估之資料類型的欄位名稱或表達`string`式。

## 傳回類型
<a name="ql-functions.char_length.return-type"></a>

`int`

## 範例
<a name="ql-functions.char_length.examples"></a>

```
SELECT CHAR_LENGTH('') FROM << 0 >>        -- 0
SELECT CHAR_LENGTH('abcdefg') FROM << 0 >> -- 7
SELECT CHAR_LENGTH('eࠫ') FROM << 0 >>      -- 2 (because 'eࠫ' is two code points: the letter 'e' and combining character U+032B)
```

## 相關函數
<a name="ql-functions.char_length.related"></a>
+ [LOWER](ql-functions.lower.md)
+ [SUBSTRING](ql-functions.substring.md)
+ [TRIM](ql-functions.trim.md)
+ [UPPER](ql-functions.upper.md)

# Amazon QLDB 中的 CHARACTER\$1LENGTH 函數
<a name="ql-functions.character_length"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

`CHAR_LENGTH` 函數的同義詞。

請參閱 [Amazon QLDB 中的 CHAR\$1LENGTH 函數](ql-functions.char_length.md)。

# Amazon QLDB 中的 COALESCE 函數
<a name="ql-functions.coalesce"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，提供一或多個引數的清單，請使用 `COALESCE`函數從左到右依序評估引數，並傳回不是未知類型的第一個值 (`NULL` 或 `MISSING`)。如果所有引數類型都未知，則結果為 `NULL`。

`COALESCE` 函數不會傳播 `NULL`和 `MISSING`。

## 語法
<a name="ql-functions.coalesce.syntax"></a>

```
COALESCE ( expression [, expression, ... ] )
```

## 引數
<a name="ql-functions.coalesce.arguments"></a>

*運算式*  
函數評估的一或多個欄位名稱或表達式清單。每個引數可以是任何支援的 [資料類型](ql-reference.data-types.md)。

## 傳回類型
<a name="ql-functions.coalesce.return-type"></a>

任何支援的資料類型。傳回類型與評估為非 Null 和非遺失值的第一個表達式`NULL`類型相同。

## 範例
<a name="ql-functions.coalesce.examples"></a>

```
SELECT COALESCE(1, null) FROM << 0 >>         -- 1
SELECT COALESCE(null, null, 1) FROM << 0 >>   -- 1
SELECT COALESCE(null, 'string') FROM << 0 >>  -- "string"
```

## 相關函數
<a name="ql-functions.coalesce.related"></a>
+ [EXISTS](ql-functions.exists.md)
+ [NULLIF](ql-functions.nullif.md)

# Amazon QLDB 中的 COUNT 函數
<a name="ql-functions.count"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `COUNT`函數來傳回由指定表達式定義的文件數量。此函數有兩種變化：
+ `COUNT(*)` – 計算目標資料表中的所有文件，無論它們是否包含 null 值或缺少值。
+ `COUNT(expression)` – 計算特定現有欄位或表達式中具有非空值的文件數量。

**警告**  
函數未最佳化，因此我們不建議在沒有索引查詢的情況下使用該`COUNT`函數。當您在沒有索引查詢的情況下在 QLDB 中執行查詢時，它會叫用完整資料表掃描。這可能會導致大型資料表的效能問題，包括並行衝突和交易逾時。  
若要避免資料表掃描，您必須在索引欄位或文件 ID 上使用*等式*運算子 (`=` 或 `IN`) 搭配`WHERE`述詞子句執行陳述式。如需詳細資訊，請參閱[最佳化查詢效能](working.optimize.md)。

## 語法
<a name="ql-functions.count.syntax"></a>

```
COUNT ( * | expression )
```

## 引數
<a name="ql-functions.count.arguments"></a>

*運算式*  
函數操作的欄位名稱或表達式。此參數可以是任何支援的 [資料類型](ql-reference.data-types.md)。

## 傳回類型
<a name="ql-functions.count.return-type"></a>

`int`

## 範例
<a name="ql-functions.count.examples"></a>

```
SELECT COUNT(*) FROM VehicleRegistration r WHERE r.LicensePlateNumber = 'CA762X' -- 1
SELECT COUNT(r.VIN) FROM Vehicle r WHERE r.VIN = '1N4AL11D75C109151'             -- 1
SELECT COUNT(a) FROM << { 'a' : 1 }, { 'a': 2 }, { 'a': 3 } >>                   -- 3
```

## 相關函數
<a name="ql-functions.count.related"></a>
+ [AVG](ql-functions.avg.md)
+ [MAX](ql-functions.max.md)
+ [MIN](ql-functions.min.md)
+ [SIZE](ql-functions.size.md)
+ [SUM](ql-functions.sum.md)

# Amazon QLDB 中的 DATE\$1ADD 函數
<a name="ql-functions.date_add"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `DATE_ADD`函數將指定的時間戳記值增加指定的間隔。

## 語法
<a name="ql-functions.date_add.syntax"></a>

```
DATE_ADD( datetimepart, interval, timestamp )
```

## 引數
<a name="ql-functions.date_add.arguments"></a>

*datetimepart*  
函數操作的日期或時間部分。此參數可為下列其中一個值：  
+ `year`
+ `month`
+ `day`
+ `hour`
+ `minute`
+ `second`

*間隔*  
指定要新增至指定*時間戳記*之間隔的整數。負整數會減去間隔。

*timestamp*  
函數遞增的資料類型欄位名稱或表達`timestamp`式。  
Ion 時間戳記常值可以用反引號 () 表示``...``。如需格式化詳細資訊和時間戳記值的範例，請參閱 Amazon Ion 規格文件中的[時間戳記](https://amzn.github.io/ion-docs/docs/spec.html#timestamp)。

## 傳回類型
<a name="ql-functions.date_add.return-type"></a>

`timestamp`

## 範例
<a name="ql-functions.date_add.examples"></a>

```
DATE_ADD(year, 5, `2010-01-01T`)                -- 2015-01-01T
DATE_ADD(month, 1, `2010T`)                     -- 2010-02T (result adds precision as necessary)
DATE_ADD(month, 13, `2010T`)                    -- 2011-02T (2010T is equivalent to 2010-01-01T00:00:00.000Z)
DATE_ADD(day, -1, `2017-01-10T`)                -- 2017-01-09T
DATE_ADD(hour, 1, `2017T`)                      -- 2017-01-01T01:00Z
DATE_ADD(hour, 1, `2017-01-02T03:04Z`)          -- 2017-01-02T04:04Z
DATE_ADD(minute, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:05:05.006Z
DATE_ADD(second, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:04:06.006Z

-- Runnable statements
SELECT DATE_ADD(year, 5, `2010-01-01T`) FROM << 0 >> -- 2015-01-01T
SELECT DATE_ADD(day, -1, `2017-01-10T`) FROM << 0 >> -- 2017-01-09T
```

## 相關函數
<a name="ql-functions.date_add.related"></a>
+ [DATE\$1DIFF](ql-functions.date_diff.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)

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

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon 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 )
```

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

*datetimepart*  
函數操作的日期或時間部分。此參數可為下列其中一個值：  
+ `year`
+ `month`
+ `day`
+ `hour`
+ `minute`
+ `second`

*時間戳記1*，*時間戳記2*  
`timestamp` 函數比較的兩個欄位名稱或資料類型表達式。如果*時間戳記 2* 晚於*時間戳記 1*，則結果為正值。如果*時間戳記 2* 早於*時間戳記 1*，則結果為負。  
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)

# Amazon QLDB 中的 EXISTS 函數
<a name="ql-functions.exists"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，指定 PartiQL 值，`TRUE`如果該值是非空白集合，請使用 `EXISTS`函數傳回 。否則，此函數會傳回 `FALSE`。如果 的輸入`EXISTS`不是容器，則結果為 `FALSE`。

`EXISTS` 函數不會傳播 `NULL`和 `MISSING`。

## 語法
<a name="ql-functions.exists.syntax"></a>

```
EXISTS ( value )
```

## 引數
<a name="ql-functions.exists.arguments"></a>

*值*  
函數評估的欄位名稱或表達式。此參數可以是任何支援的 [資料類型](ql-reference.data-types.md)。

## 傳回類型
<a name="ql-functions.exists.return-type"></a>

`bool`

## 範例
<a name="ql-functions.exists.examples"></a>

```
EXISTS(`[]`)        -- false (empty list)
EXISTS(`[1, 2, 3]`) -- true (non-empty list)
EXISTS(`[missing]`) -- true (non-empty list)
EXISTS(`{}`)        -- false (empty struct)
EXISTS(`{ a: 1 }`)  -- true (non-empty struct)
EXISTS(`()`)        -- false (empty s-expression)
EXISTS(`(+ 1 2)`)   -- true (non-empty s-expression)
EXISTS(1)           -- false
EXISTS(`2017T`)     -- false
EXISTS(null)        -- false
EXISTS(missing)     -- error

-- Runnable statements
SELECT EXISTS(`[]`) FROM << 0 >>        -- false
SELECT EXISTS(`[1, 2, 3]`) FROM << 0 >> -- true
```

## 相關函數
<a name="ql-functions.exists.related"></a>
+ [COALESCE](ql-functions.coalesce.md)
+ [NULLIF](ql-functions.nullif.md)

# Amazon QLDB 中的 EXTRACT 函數
<a name="ql-functions.extract"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `EXTRACT`函數從指定的時間戳記傳回指定日期或時間部分的整數值。

## 語法
<a name="ql-functions.extract.syntax"></a>

```
EXTRACT ( datetimepart FROM timestamp )
```

## 引數
<a name="ql-functions.extract.arguments"></a>

*datetimepart*  
函數擷取的日期或時間部分。此參數可為下列其中一個值：  
+ `year`
+ `month`
+ `day`
+ `hour`
+ `minute`
+ `second`
+ `timezone_hour`
+ `timezone_minute`

*timestamp*  
函數擷取來源之資料類型的欄位名稱或表達`timestamp`式。如果此參數是未知類型 (`NULL` 或 `MISSING`)，則函數會傳回 `NULL`。  
Ion 時間戳記常值可以用反引號 () 表示``...``。如需格式化詳細資訊和時間戳記值的範例，請參閱 Amazon Ion 規格文件中的[時間戳記](https://amzn.github.io/ion-docs/docs/spec.html#timestamp)。

## 傳回類型
<a name="ql-functions.extract.return-type"></a>

`int`

## 範例
<a name="ql-functions.extract.examples"></a>

```
EXTRACT(YEAR FROM `2010-01-01T`)                           -- 2010
EXTRACT(MONTH FROM `2010T`)                                -- 1 (equivalent to 2010-01-01T00:00:00.000Z)
EXTRACT(MONTH FROM `2010-10T`)                             -- 10
EXTRACT(HOUR FROM `2017-01-02T03:04:05+07:08`)             -- 3
EXTRACT(MINUTE FROM `2017-01-02T03:04:05+07:08`)           -- 4
EXTRACT(TIMEZONE_HOUR FROM `2017-01-02T03:04:05+07:08`)    -- 7
EXTRACT(TIMEZONE_MINUTE FROM `2017-01-02T03:04:05+07:08`)  -- 8

-- Runnable statements
SELECT EXTRACT(YEAR FROM `2010-01-01T`) FROM << 0 >> -- 2010
SELECT EXTRACT(MONTH FROM `2010T`) FROM << 0 >>      -- 1
```

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

# Amazon QLDB 中的 LOWER 函數
<a name="ql-functions.lower"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `LOWER`函數將所有大寫字元轉換為指定字串中的小寫字元。

## 語法
<a name="ql-functions.lower.syntax"></a>

```
LOWER ( string )
```

## 引數
<a name="ql-functions.lower.arguments"></a>

*string*  
函數轉換之資料類型的欄位名稱或表達`string`式。

## 傳回類型
<a name="ql-functions.lower.return-type"></a>

`string`

## 範例
<a name="ql-functions.lower.examples"></a>

```
SELECT LOWER('AbCdEfG!@#$') FROM << 0 >> -- 'abcdefg!@#$'
```

## 相關函數
<a name="ql-functions.lower.related"></a>
+ [CHAR\$1LENGTH](ql-functions.char_length.md)
+ [SUBSTRING](ql-functions.substring.md)
+ [TRIM](ql-functions.trim.md)
+ [UPPER](ql-functions.upper.md)

# Amazon QLDB 中的 MAX 函數
<a name="ql-functions.max"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `MAX`函數傳回一組數值中的最大值。

## 語法
<a name="ql-functions.max.syntax"></a>

```
MAX ( expression )
```

## 引數
<a name="ql-functions.max.arguments"></a>

*運算式*  
函數操作的數值資料類型的欄位名稱或表達式。

## 資料類型
<a name="ql-functions.max.data-types"></a>

支援的引數類型：
+ `int`
+ `decimal`
+ `float`

支援的傳回類型：
+ `int`
+ `decimal`
+ `float`

## 範例
<a name="ql-functions.max.examples"></a>

```
SELECT MAX(r.PendingPenaltyTicketAmount) FROM VehicleRegistration r  -- 442.30
SELECT MAX(a) FROM << { 'a' : 1 }, { 'a': 2 }, { 'a': 3 } >>         -- 3
```

## 相關函數
<a name="ql-functions.max.related"></a>
+ [AVG](ql-functions.avg.md)
+ [COUNT](ql-functions.count.md)
+ [MIN](ql-functions.min.md)
+ [SIZE](ql-functions.size.md)
+ [SUM](ql-functions.sum.md)

# Amazon QLDB 中的 MIN 函數
<a name="ql-functions.min"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `MIN`函數傳回一組數值中的最小值。

## 語法
<a name="ql-functions.min.syntax"></a>

```
MIN ( expression )
```

## 引數
<a name="ql-functions.min.arguments"></a>

*運算式*  
函數操作的數值資料類型的欄位名稱或表達式。

## 資料類型
<a name="ql-functions.min.data-types"></a>

支援的引數類型：
+ `int`
+ `decimal`
+ `float`

支援的傳回類型：
+ `int`
+ `decimal`
+ `float`

## 範例
<a name="ql-functions.min.examples"></a>

```
SELECT MIN(r.PendingPenaltyTicketAmount) FROM VehicleRegistration r  -- 30.45
SELECT MIN(a) FROM << { 'a' : 1 }, { 'a': 2 }, { 'a': 3 } >>         -- 1
```

## 相關函數
<a name="ql-functions.min.related"></a>
+ [AVG](ql-functions.avg.md)
+ [COUNT](ql-functions.count.md)
+ [MAX](ql-functions.max.md)
+ [SIZE](ql-functions.size.md)
+ [SUM](ql-functions.sum.md)

# Amazon QLDB 中的 NULLIF 函數
<a name="ql-functions.nullif"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，指定兩個表達式，`NULL`如果兩個表達式評估為相同的值，請使用 `NULLIF`函數傳回 。否則，此函數會傳回評估第一個表達式的結果。

`NULLIF` 函數不會傳播 `NULL`和 `MISSING`。

## 語法
<a name="ql-functions.nullif.syntax"></a>

```
NULLIF ( expression1, expression2 )
```

## 引數
<a name="ql-functions.nullif.arguments"></a>

*expression1*、*expression2*  
函數比較的兩個欄位名稱或表達式。這些參數可以是任何支援的 [資料類型](ql-reference.data-types.md)。

## 傳回類型
<a name="ql-functions.nullif.return-type"></a>

任何支援的資料類型。傳回類型與第一個表達式的類型為 `NULL`或相同。

## 範例
<a name="ql-functions.nullif.examples"></a>

```
NULLIF(1, 1)             -- null
NULLIF(1, 2)             -- 1
NULLIF(1.0, 1)           -- null
NULLIF(1, '1')           -- 1
NULLIF([1], [1])         -- null
NULLIF(1, NULL)          -- 1
NULLIF(NULL, 1)          -- null
NULLIF(null, null)       -- null
NULLIF(missing, null)    -- null
NULLIF(missing, missing) -- null

-- Runnable statements
SELECT NULLIF(1, 1) FROM << 0 >>   -- null
SELECT NULLIF(1, '1') FROM << 0 >> -- 1
```

## 相關函數
<a name="ql-functions.nullif.related"></a>
+ [COALESCE](ql-functions.coalesce.md)
+ [EXISTS](ql-functions.exists.md)

# Amazon QLDB 中的 SIZE 函數
<a name="ql-functions.size"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `SIZE`函數來傳回指定容器資料類型 （清單、結構或包） 中的元素數目。

## 語法
<a name="ql-functions.size.syntax"></a>

```
SIZE ( container )
```

## 引數
<a name="ql-functions.size.arguments"></a>

*容器*  
函數操作所在的容器欄位名稱或表達式。

## 資料類型
<a name="ql-functions.size.data-types"></a>

支援的引數類型：
+ 列出
+ 結構
+ 包

傳回類型： `int`

如果 的輸入`SIZE`不是容器，函數會擲回錯誤。

## 範例
<a name="ql-functions.size.examples"></a>

```
SIZE(`[]`)                   -- 0
SIZE(`[null]`)               -- 1
SIZE(`[1,2,3]`)              -- 3
SIZE(<<'foo', 'bar'>>)       -- 2
SIZE(`{foo: bar}`)           -- 1 (number of key-value pairs)
SIZE(`[{foo: 1}, {foo: 2}]`) -- 2
SIZE(12)                     -- error

-- Runnable statements
SELECT SIZE(`[]`) FROM << 0 >>      -- 0
SELECT SIZE(`[1,2,3]`) FROM << 0 >> -- 3
```

## 相關函數
<a name="ql-functions.size.related"></a>
+ [AVG](ql-functions.avg.md)
+ [COUNT](ql-functions.count.md)
+ [MAX](ql-functions.max.md)
+ [MIN](ql-functions.min.md)
+ [SUM](ql-functions.sum.md)

# Amazon QLDB 中的 SUBSTRING 函數
<a name="ql-functions.substring"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `SUBSTRING`函數從指定的字串傳回子字串。子字串從指定的開始索引開始，並以字串的最後一個字元結束，或以指定的長度結束。

## 語法
<a name="ql-functions.substring.syntax"></a>

```
SUBSTRING ( string, start-index [, length ] )
```

## 引數
<a name="ql-functions.substring.arguments"></a>

*string*  
要`string`從中擷取子字串之資料類型的欄位名稱或表達式。

*start-index*  
*字串*中的開始位置，從中開始擷取。這可以是負數。  
*字串*的第一個字元的索引為 1。

*長度*  
（選用） 從*字串*擷取的字元 （程式碼點） 數目，從 *start-index* 開始，到 end at (*start-index* \$1 *length*) - 1。換言之，子字串的長度。此數字不可以是負數。  
如果未提供此參數，函數會繼續執行，直到*字串*結束為止。

## 傳回類型
<a name="ql-functions.substring.return-type"></a>

`string`

## 範例
<a name="ql-functions.substring.examples"></a>

```
SUBSTRING('123456789', 0)      -- '123456789'
SUBSTRING('123456789', 1)      -- '123456789'
SUBSTRING('123456789', 2)      -- '23456789'
SUBSTRING('123456789', -4)     -- '123456789'
SUBSTRING('123456789', 0, 999) -- '123456789'
SUBSTRING('123456789', 0, 2)   -- '1'
SUBSTRING('123456789', 1, 999) -- '123456789'
SUBSTRING('123456789', 1, 2)   -- '12'
SUBSTRING('1', 1, 0)           -- ''
SUBSTRING('1', 1, 0)           -- ''
SUBSTRING('1', -4, 0)          -- ''
SUBSTRING('1234', 10, 10)      -- ''

-- Runnable statements
SELECT SUBSTRING('123456789', 1) FROM << 0 >>    -- "123456789"
SELECT SUBSTRING('123456789', 1, 2) FROM << 0 >> -- "12"
```

## 相關函數
<a name="ql-functions.substring.related"></a>
+ [CHAR\$1LENGTH](ql-functions.char_length.md)
+ [LOWER](ql-functions.lower.md)
+ [TRIM](ql-functions.trim.md)
+ [UPPER](ql-functions.upper.md)

# Amazon QLDB 中的 SUM 函數
<a name="ql-functions.sum"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `SUM`函數傳回輸入欄位或表達式值的總和。此函數適用於數值，並忽略 null 或缺少的值。

## 語法
<a name="ql-functions.sum.syntax"></a>

```
SUM ( expression )
```

## 引數
<a name="ql-functions.sum.arguments"></a>

*運算式*  
函數操作的數值資料類型的欄位名稱或表達式。

## 資料類型
<a name="ql-functions.sum.data-types"></a>

支援的引數類型：
+ `int`
+ `decimal`
+ `float`

支援的傳回類型：
+ `int` – 針對整數引數
+ `decimal` – 針對小數或浮點引數

## 範例
<a name="ql-functions.sum.examples"></a>

```
SELECT SUM(r.PendingPenaltyTicketAmount) FROM VehicleRegistration r  -- 735.95
SELECT SUM(a) FROM << { 'a' : 1 }, { 'a': 2 }, { 'a': 3 } >>         -- 6
```

## 相關函數
<a name="ql-functions.sum.related"></a>
+ [AVG](ql-functions.avg.md)
+ [COUNT](ql-functions.count.md)
+ [MAX](ql-functions.max.md)
+ [MIN](ql-functions.min.md)
+ [SIZE](ql-functions.size.md)

# Amazon QLDB 中的 TO\$1STRING 函數
<a name="ql-functions.to_string"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `TO_STRING`函數以指定的格式模式傳回指定時間戳記的字串表示。

## 語法
<a name="ql-functions.to_string.syntax"></a>

```
TO_STRING ( timestamp, 'format' )
```

## 引數
<a name="ql-functions.to_string.arguments"></a>

*timestamp*  
函數轉換為字串之資料類型的欄位名稱或表達`timestamp`式。  
Ion 時間戳記常值可以用反引號 () 表示``...``。如需格式化詳細資訊和時間戳記值的範例，請參閱 Amazon Ion 規格文件中的[時間戳記](https://amzn.github.io/ion-docs/docs/spec.html#timestamp)。

*format*  
指定結果格式模式的字串常值，以日期部分表示。如需有效的格式，請參閱 [時間戳記格式字串](ql-functions.timestamp-format.md)。

## 傳回類型
<a name="ql-functions.to_string.return-type"></a>

`string`

## 範例
<a name="ql-functions.to_string.examples"></a>

```
TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y')                     -- "July 20, 1969"
TO_STRING(`1969-07-20T20:18Z`, 'MMM d, yyyy')                   -- "Jul 20, 1969"
TO_STRING(`1969-07-20T20:18Z`, 'M-d-yy')                        -- "7-20-69"
TO_STRING(`1969-07-20T20:18Z`, 'MM-d-y')                        -- "07-20-1969"
TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y h:m a')               -- "July 20, 1969 8:18 PM"
TO_STRING(`1969-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX')           -- "1969-07-20T20:18:00Z"
TO_STRING(`1969-07-20T20:18+08:00Z`, 'y-MM-dd''T''H:m:ssX')     -- "1969-07-20T20:18:00Z"
TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXX')   -- "1969-07-20T20:18:00+0800"
TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXXX')  -- "1969-07-20T20:18:00+08:00"

-- Runnable statements
SELECT TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y') FROM << 0 >>           -- "July 20, 1969"
SELECT TO_STRING(`1969-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX') FROM << 0 >> -- "1969-07-20T20:18:00Z"
```

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

# Amazon QLDB 中的 TO\$1TIMESTAMP 函數
<a name="ql-functions.to_timestamp"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，提供代表時間戳記的字串，請使用 `TO_TIMESTAMP`函數將字串轉換為`timestamp`資料類型。這是 的反向操作`TO_STRING`。

## 語法
<a name="ql-functions.to_timestamp.syntax"></a>

```
TO_TIMESTAMP ( string [, 'format' ] )
```

## 引數
<a name="ql-functions.to_timestamp.arguments"></a>

*string*  
函數轉換為時間戳記之資料類型的欄位名稱或表達`string`式。

*format*  
（選用） 字串常值，以日期部分定義輸入*字串*的格式模式。如需有效的格式，請參閱 [時間戳記格式字串](ql-functions.timestamp-format.md)。  
如果省略此引數，函數會假設*字串*的格式為[標準 Ion 時間戳記](http://amzn.github.io/ion-docs/docs/spec.html#timestamp)。這是使用此函數剖析 Ion 時間戳記的建議方法。  
使用單一字元格式符號 （例如 `y`、`M`、`d`、`H``h`、、、`s`) 時，可選用零填補`m`，但其零填補變體 （例如 `yyyy`、`MM`、、`dd``HH``hh`、`mm`、) 需要`ss`。  
特殊處理會給予兩位數的年數 （格式符號 `yy`)。1900 會新增至大於或等於 70 的值，2000 會新增至小於 70 的值。  
月名稱和 AM 或 PM 指標不區分大小寫。

## 傳回類型
<a name="ql-functions.to_timestamp.return-type"></a>

`timestamp`

## 範例
<a name="ql-functions.to_timestamp.examples"></a>

```
TO_TIMESTAMP('2007T')                         -- `2007T`
TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`
TO_TIMESTAMP('2016', 'y')                     -- `2016T`
TO_TIMESTAMP('2016', 'yyyy')                  -- `2016T`
TO_TIMESTAMP('02-2016', 'MM-yyyy')            -- `2016-02T`
TO_TIMESTAMP('Feb 2016', 'MMM yyyy')          -- `2016-02T`
TO_TIMESTAMP('February 2016', 'MMMM yyyy')     -- `2016-02T`

-- Runnable statements
SELECT TO_TIMESTAMP('2007T') FROM << 0 >>              -- 2007T
SELECT TO_TIMESTAMP('02-2016', 'MM-yyyy') FROM << 0 >> -- 2016-02T
```

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

# Amazon QLDB 中的 TRIM 函數
<a name="ql-functions.trim"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `TRIM`函數來修剪指定的字串，方法是移除前後空白空格或指定的字元*集*。

## 語法
<a name="ql-functions.trim.syntax"></a>

```
TRIM ( [ LEADING | TRAILING | BOTH [ characters ] FROM ] string)
```

## 引數
<a name="ql-functions.trim.arguments"></a>

LEADING  
（選用） 表示要從*字串*開頭移除空格或指定的字元。如果未指定，預設行為為 `BOTH`。

TRAILING  
（選用） 表示要從*字串*結尾移除空格或指定的字元。如果未指定，預設行為為 `BOTH`。

BOTH  
（選用） 表示要從*字串*開頭和結尾移除開頭和結尾的空格或指定的字元。

*characters*  
（選用） 要移除的字元*集*，指定為 `string`。  
如果未提供此參數，則會移除空格。

*string*  
函數修剪的資料類型欄位名稱或表達`string`式。

## 傳回類型
<a name="ql-functions.trim.return-type"></a>

`string`

## 範例
<a name="ql-functions.trim.examples"></a>

```
TRIM('       foobar         ')               -- 'foobar'
TRIM('      \tfoobar\t         ')            -- '\tfoobar\t'
TRIM(LEADING FROM '       foobar         ')  -- 'foobar         '
TRIM(TRAILING FROM '       foobar         ') -- '       foobar'
TRIM(BOTH FROM '       foobar         ')     -- 'foobar'
TRIM(BOTH '1' FROM '11foobar11')             -- 'foobar'
TRIM(BOTH '12' FROM '1112211foobar22211122') -- 'foobar'

-- Runnable statements
SELECT TRIM('       foobar         ') FROM << 0 >>              -- "foobar"
SELECT TRIM(LEADING FROM '       foobar         ') FROM << 0 >> -- "foobar         "
```

## 相關函數
<a name="ql-functions.trim.related"></a>
+ [CHAR\$1LENGTH](ql-functions.char_length.md)
+ [LOWER](ql-functions.lower.md)
+ [SUBSTRING](ql-functions.substring.md)
+ [UPPER](ql-functions.upper.md)

# Amazon QLDB 中的 TXID 函數
<a name="ql-functions.txid"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `TXID`函數傳回您正在執行之目前陳述式的唯一交易 ID。這是當目前交易遞交至日誌時，指派給文件`txId`中繼資料欄位的值。

## 語法
<a name="ql-functions.txid.syntax"></a>

```
TXID()
```

## 引數
<a name="ql-functions.txid.arguments"></a>

無

## 傳回類型
<a name="ql-functions.txid.return-type"></a>

`string`

## 範例
<a name="ql-functions.txid.examples"></a>

```
SELECT TXID() FROM << 0 >>  -- "L7S9iJqcn9W2M4qOEn27ay"
SELECT TXID() FROM Person WHERE GovId = 'LEWISR261LL'  -- "BKeMb48PNyvHWJGZHkaodG"
```

# Amazon QLDB 中的 UPPER 函數
<a name="ql-functions.upper"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `UPPER`函數將所有小寫字元轉換為指定字串中的大寫字元。

## 語法
<a name="ql-functions.upper.syntax"></a>

```
UPPER ( string )
```

## 引數
<a name="ql-functions.upper.arguments"></a>

*string*  
函數轉換之資料類型的欄位名稱或表達`string`式。

## 傳回類型
<a name="ql-functions.upper.return-type"></a>

`string`

## 範例
<a name="ql-functions.upper.examples"></a>

```
SELECT UPPER('AbCdEfG!@#$') FROM << 0 >> -- 'ABCDEFG!@#$'
```

## 相關函數
<a name="ql-functions.upper.related"></a>
+ [CHAR\$1LENGTH](ql-functions.char_length.md)
+ [LOWER](ql-functions.lower.md)
+ [SUBSTRING](ql-functions.substring.md)
+ [TRIM](ql-functions.trim.md)

# Amazon QLDB 中的 UTCNOW 函數
<a name="ql-functions.utcnow"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用 `UTCNOW`函數將目前時間以國際標準時間 (UTC) 傳回為 `timestamp`。

## 語法
<a name="ql-functions.utcnow.syntax"></a>

```
UTCNOW()
```

此函數會要求您在`SELECT`查詢中指定`FROM`子句。

## 引數
<a name="ql-functions.utcnow.arguments"></a>

無

## 傳回類型
<a name="ql-functions.utcnow.return-type"></a>

`timestamp`

## 範例
<a name="ql-functions.utcnow.examples"></a>

```
SELECT UTCNOW() FROM << 0 >>  -- 2019-12-27T20:12:16.999Z
SELECT UTCNOW() FROM Person WHERE GovId = 'LEWISR261LL'  -- 2019-12-27T20:12:26.999Z

INSERT INTO Person VALUE { 'firstName': 'Jane', 'createdAt': UTCNOW() }
UPDATE Person p SET p.updatedAt = UTCNOW() WHERE p.firstName = 'John'
```

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

# 時間戳記格式字串
<a name="ql-functions.timestamp-format"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

本節提供時間戳記格式字串的參考資訊。

時間戳記格式字串適用於 `TO_STRING`和 `TO_TIMESTAMP`函數。這些字串可包含日期部分分隔符號 （例如 '`-`'、'`/`' 或 '`:`') 和下列格式符號。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/qldb/latest/developerguide/ql-functions.timestamp-format.html)