

 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\_TRUNC 関数
<a name="r_DATE_TRUNC"></a>

DATE\_TRUNC 関数は、指定した日付部分 (時、日、月など) に基づいてタイムスタンプの式またはリテラルを切り捨てます。

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

```
DATE_TRUNC('datepart', timestamp)
```

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

 *datepart*   
タイムスタンプの値を切り捨てる日付部分。入力*タイムスタンプ*は、入力 *datepart* の精度で切り捨てられます。例えば、`month` は、その月の初日で切り捨てられます。有効な形式は次のとおりです。  
+ microsecond、microseconds
+ millisecond、milliseconds
+ second、seconds
+ minute、minutes
+ hour、hours
+ day、days
+ week、weeks
+ month、months
+ quarter、quarters
+ year、years
+ decade、decades
+ century、centuries
+ millennium、millennia
形式の略語の詳細については、「[日付関数またはタイムスタンプ関数の日付部分](r_Dateparts_for_datetime_functions.md)」を参照してください。

 *timestamp*   
タイムスタンプの列、あるいは暗黙的にタイムスタンプに変換される式。

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

TIMESTAMP

## 例
<a name="r_DATE_TRUNC-example"></a>

入力タイムスタンプを秒単位で切り捨てます。

```
SELECT DATE_TRUNC('second', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-04-30 04:05:06
```

入力タイムスタンプを分単位で切り捨てます。

```
SELECT DATE_TRUNC('minute', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-04-30 04:05:00
```

入力タイムスタンプを時間単位で切り捨てます。

```
SELECT DATE_TRUNC('hour', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-04-30 04:00:00
```

入力タイムスタンプを日単位で切り捨てます。

```
SELECT DATE_TRUNC('day', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-04-30 00:00:00
```

入力タイムスタンプを月の初日で切り捨てます。

```
SELECT DATE_TRUNC('month', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-04-01 00:00:00
```

入力タイムスタンプを四半期の初日で切り捨てます。

```
SELECT DATE_TRUNC('quarter', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-04-01 00:00:00
```

入力タイムスタンプを 1 年の初日で切り捨てます。

```
SELECT DATE_TRUNC('year', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2020-01-01 00:00:00
```

入力タイムスタンプを 1 世紀の初日で切り捨てます。

```
SELECT DATE_TRUNC('millennium', TIMESTAMP '20200430 04:05:06.789');
date_trunc
2001-01-01 00:00:00
```

入力タイムスタンプを月曜日に切り捨てます。

```
select date_trunc('week', TIMESTAMP '20220430 04:05:06.789');
date_trunc
2022-04-25 00:00:00
```

次の例では、DATE\_TRUNC 関数が 'week' の日付部分を使用して、各週の月曜日の日付を返します。

```
select date_trunc('week', saletime), sum(pricepaid) from sales where
saletime like '2008-09%' group by date_trunc('week', saletime) order by 1;

date_trunc  |    sum
------------+-------------
2008-09-01  | 2474899
2008-09-08  | 2412354
2008-09-15  | 2364707
2008-09-22  | 2359351
2008-09-29  |  705249
```