

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# DATE\$1PART 関数
<a name="r_DATE_PART_function"></a>

DATE\$1PART は式から日付部分の値を抽出します。DATE\$1PART は PGDATE\$1PART 関数のシノニムです。

## 構文
<a name="r_DATE_PART_function-synopsis"></a>

```
DATE_PART(datepart, {date|timestamp})
```

## 引数
<a name="r_DATE_PART_function-arguments"></a>

 *datepart*   
関数が実行される日付の値の特定部分 (例: 年、月、または日) の識別子リテラルまたは文字列。詳細については、「[日付関数またはタイムスタンプ関数の日付部分](r_Dateparts_for_datetime_functions.md)」を参照してください。

\$1*date*\$1*timestamp*\$1  
日付列、タイムスタンプ列、または暗黙的に日付またはタイムスタンプに変換される式。*日付*または*タイムスタンプ*の列または式には、*datepart* で指定された日付部分が含まれている必要があります。

## 戻り型
<a name="r_DATE_PART_function-return-type"></a>

DOUBLE

## 例
<a name="r_DATE_PART_function-examples"></a>

DATE\$1PART 関数のデフォルトの列名は `pgdate_part` です。

 次の例の一部で使用されるデータの詳細については、「[サンプルデータベース](c_sampledb.md)」を参照してください。

次の例では、タイムスタンプリテラルから分を見つけます。

```
SELECT DATE_PART(minute, timestamp '20230104 04:05:06.789');
            
pgdate_part
-----------
         5
```

次の例では、タイムスタンプリテラルから週番号を見つけます。週番号の計算は、ISO 8601 標準に従います。詳細については、Wikipedia の「[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)」を参照してください。

```
SELECT DATE_PART(week, timestamp '20220502 04:05:06.789');
            
pgdate_part
-----------
         18
```

次の例では、タイムスタンプリテラルから日付を見つけます。

```
SELECT DATE_PART(day, timestamp '20220502 04:05:06.789');
            
pgdate_part
-----------
         2
```

次の例では、タイムスタンプリテラルから曜日を見つけます。曜日番号の計算は、日曜日から始まる 0～6 の整数です。

```
SELECT DATE_PART(dayofweek, timestamp '20220502 04:05:06.789');
            
pgdate_part
-----------
         1
```

次の例では、タイムスタンプリテラルから世紀を見つけます。世紀の計算は、ISO 8601 標準に従います。詳細については、Wikipedia の「[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)」を参照してください。

```
SELECT DATE_PART(century, timestamp '20220502 04:05:06.789');
            
pgdate_part
-----------
         21
```

次の例は、タイムスタンプリテラルからミレニアムを検出します。ミレニアムの計算は、ISO 8601 標準に従います。詳細については、Wikipedia の「[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)」を参照してください。

```
SELECT DATE_PART(millennium, timestamp '20220502 04:05:06.789');
            
pgdate_part
-----------
         3
```

次の例は、タイムスタンプリテラルからマイクロ秒を検出します。マイクロ秒の計算は、ISO 8601 標準に従います。詳細については、Wikipedia の「[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)」を参照してください。

```
SELECT DATE_PART(microsecond, timestamp '20220502 04:05:06.789');
            
pgdate_part
-----------
    789000
```

次の例では、日付リテラルから月を見つけます。

```
SELECT DATE_PART(month, date '20220502');
            
pgdate_part
-----------
         5
```

次の例は、DATE\$1PART 関数をテーブルの列に適用します。

```
SELECT date_part(w, listtime) AS weeks, listtime
FROM listing 
WHERE listid=10
            

weeks |      listtime
------+---------------------
 25   | 2008-06-17 09:44:54
(1 row)
```

完全形あるいは省略形の日付部分に名前を付けることができます。この場合、*w* は週を指します。

曜日の日付部分は、0～6 の整数を返します (0 は日曜日)。dow (曜日) とともに DATE\$1PART を使用し、土曜のイベントを表示します。

```
SELECT date_part(dow, starttime) AS dow, starttime 
FROM event
WHERE date_part(dow, starttime)=6
ORDER BY 2,1;     

 dow |      starttime
-----+---------------------
   6 | 2008-01-05 14:00:00
   6 | 2008-01-05 14:00:00
   6 | 2008-01-05 14:00:00
   6 | 2008-01-05 14:00:00
...
(1147 rows)
```