

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

# 資料類型
<a name="s3-select-sql-reference-data-types"></a>

**重要**  
Amazon S3 Select 不再提供給新客戶。Amazon S3 Select 的現有客戶可以繼續照常使用此功能。[進一步了解](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select 支援數種基本資料類型。

## 資料類型轉換
<a name="s3-select-sql-reference-data-conversion"></a>

如果一般規則是遵循 `CAST` 函數 (如有定義的話)。如果 `CAST` 沒有定義，則所有輸入資料會視為一個字串。在此情況下，必要時您必須將輸入資料轉換為相關資料類型。

如需 `CAST` 函數的詳細資訊，請參閱「[CAST](s3-select-sql-reference-conversion.md#s3-select-sql-reference-cast)」。

## 支援的資料類型
<a name="s3-select-sql-reference-supported-data-types"></a>

Amazon S3 Select 支援下列一組基本資料類型。


|  名稱  |  描述  |  範例  | 
| --- | --- | --- | 
| `bool` | 布林值，`TRUE` 或 `FALSE`。 | `FALSE` | 
| `int`, `integer` | 8 個位元組簽署的整數在從 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的範圍內。 | `100000` | 
| `string` | UTF8 編碼的變數長度字串。預設限制為 1 個字元。字元數上限是 2,147,483,647 個。 | `'xyz'` | 
| `float` | 8 個位元組的浮點數。 | `CAST(0.456 AS FLOAT)` | 
| `decimal`, `numeric` |  以 10 為底數的數字，最大的精確度為 38 (也就是有效數字的上限)，並在 -231 到 231-1 (也就是以 10 為底數的指數) 的範圍內。  當您同時提供兩者時，Amazon S3 Select 會忽略比例和精確度。   | `123.456 ` | 
| `timestamp` |  時間戳記代表特定時間點，始終包含區域位移和任意精確度。 在文字格式中，時間戳記遵循 [W3C 的日期和時間格式](https://www.w3.org/TR/NOTE-datetime)，但時間戳記如果不是最少一整天的精確度，則結尾必須為常值 `T`。允許分數的秒值，至少一位數的精確度和無限最大值。當地時間位移可代表從 UTC 位移小時:分鐘或以常值 `Z` 標註 UTC 的當地時間。時間戳記上需要本機時間位移，日期值則不允許使用時間戳記。  | `CAST('2007-04-05T14:30Z' AS TIMESTAMP)` | 

### 支援的 Parquet 類型
<a name="s3-select-sql-reference-supported-data-types-parquet"></a>

Amazon S3 Select 支援下列 Parquet 類型。
+ `DATE`
+ `DECIMAL`
+ `ENUM`
+ `INT(8)`
+ `INT(16)`
+ `INT(32)`
+ `INT(64)`
+ `LIST`
**注意**  
對於 `LIST` Parquet 類型輸出，Amazon S3 Select 僅支援 JSON 格式。但是，如果查詢將資料限制為簡單值，也可以使用 CSV 格式查詢 `LIST` Parquet 類型。
+ `STRING`
+ `TIMESTAMP` 支援的精確度 (`MILLIS`/`MICROS`/`NANOS`)
**注意**  
不支援儲存為 `INT(96)` 的時間戳記。  
由於 `INT(64)` 類型的範圍，使用 `NANOS` 單位的時間戳記只能代表介於 `1677-09-21 00:12:43` 和 `2262-04-11 23:47:16` 之間的值。超出此範圍的值無法以 `NANOS` 單位表示。

### 將 Parquet 類型對應到 Amazon S3 Select 中的支援資料類型
<a name="s3-select-sql-reference-supported-data-types-parquet-mapping"></a>


| Parquet 類型 | 支援的資料類型 | 
| --- | --- | 
| `DATE` |  `timestamp`  | 
|  `DECIMAL`  |  `decimal`, `numeric`  | 
|  `ENUM`  |  `string`  | 
|  `INT(8)`  |  `int`, `integer`  | 
|  `INT(16)`  | `int`, `integer` | 
| `INT(32)` | `int`, `integer` | 
|  `INT(64)`  |  `decimal`, `numeric`  | 
|  `LIST`  |  清單中的每個 Parquet 類型都會映設到對應的資料類型  | 
|  `STRING`  |  `string`  | 
|  `TIMESTAMP`  |  `timestamp`  | 