

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

# 如何使用 `date` 類型
<a name="partition-projection-kinesis-firehose-example-using-the-date-type"></a>

當您將 `date` 類型用於投影分割區索引鍵時，您必須指定範圍。因為您在建立 Firehose 交付串流之前沒有日期資料，您可以使用建立日期作為開始日期。並且因為您沒有未來日期的資料，您可以使用特殊字符 `NOW` 作為結束。

在 `CREATE TABLE` 範例中，開始日期指定為世界協調時間 (UTC) 2021 年 1 月 1 日午夜。

**注意**  
設定與您的資料盡可能相符的範圍，以便 Athena 僅查詢現有分割區。

在範例資料表上執行查詢時，Athena 將 `datehour` 分割區索引鍵上的條件與範圍結合使用來產生值。請考處下列查詢：

```
SELECT *
FROM my_ingested_data
WHERE datehour >= '2020/12/15/00'
AND datehour < '2021/02/03/15'
```

`SELECT` 查詢中的第一個條件會使用日期，該日期會在 `CREATE TABLE` 陳述句指定的日期範圍開始之前。由於分割區投影組態沒有為 2021 年 1 月 1 日之前的日期指定分割區，因此 Athena 僅在以下位置查詢資料，並忽略查詢中較早的日期。

```
s3://amzn-s3-demo-bucket/prefix/2021/01/01/00/
s3://amzn-s3-demo-bucket/prefix/2021/01/01/01/
s3://amzn-s3-demo-bucket/prefix/2021/01/01/02/
...
s3://amzn-s3-demo-bucket/prefix/2021/02/03/12/
s3://amzn-s3-demo-bucket/prefix/2021/02/03/13/
s3://amzn-s3-demo-bucket/prefix/2021/02/03/14/
```

同樣地，如果在 2021 年 2 月 3 日 15:00 之前的日期和時間執行查詢，則最後一個分割區會反映目前的日期和時間，而不是在查詢條件中的日期和時間。

如果要查詢最新資料，您可以利用 Athena 不產生未來日期並僅指定開頭 `datehour` 的事實，如下列範例所示。

```
SELECT *
FROM my_ingested_data
WHERE datehour >= '2021/11/09/00'
```