

 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/)を参照してください。

# 日付および時刻関数
<a name="Date_functions_header"></a>

このセクションでは、Amazon Redshift がサポートする日付と時刻のスカラー関数についての情報を示します。

**Topics**
+ [日付と時刻関数の概要](#date-functions-summary)
+ [トランザクションにおける日付および時刻関数](#date-functions-transactions)
+ [廃止されたリーダーノード専用の関数](#date-functions-deprecated)
+ [\+ (連結) 演算子](r_DATE-CONCATENATE_function.md)
+ [ADD\_MONTHS 関数](r_ADD_MONTHS.md)
+ [AT TIME ZONE 関数](r_AT_TIME_ZONE.md)
+ [CONVERT\_TIMEZONE 関数](CONVERT_TIMEZONE.md)
+ [CURRENT\_DATE 関数](r_CURRENT_DATE_function.md)
+ [DATE\_CMP 関数](r_DATE_CMP.md)
+ [DATE\_CMP\_TIMESTAMP 関数](r_DATE_CMP_TIMESTAMP.md)
+ [DATE\_CMP\_TIMESTAMPTZ 関数](r_DATE_CMP_TIMESTAMPTZ.md)
+ [DATEADD 関数](r_DATEADD_function.md)
+ [DATEDIFF 関数](r_DATEDIFF_function.md)
+ [DATE\_PART 関数](r_DATE_PART_function.md)
+ [DATE\_PART\_YEAR 関数](r_DATE_PART_YEAR.md)
+ [DATE\_TRUNC 関数](r_DATE_TRUNC.md)
+ [EXTRACT 関数](r_EXTRACT_function.md)
+ [GETDATE 関数](r_GETDATE.md)
+ [INTERVAL\_CMP 関数](r_INTERVAL_CMP.md)
+ [LAST\_DAY 関数](r_LAST_DAY.md)
+ [MONTHS\_BETWEEN 関数](r_MONTHS_BETWEEN_function.md)
+ [NEXT\_DAY 関数](r_NEXT_DAY.md)
+ [SYSDATE 関数](r_SYSDATE.md)
+ [TIMEOFDAY 関数](r_TIMEOFDAY_function.md)
+ [TIMESTAMP\_CMP 関数](r_TIMESTAMP_CMP.md)
+ [TIMESTAMP\_CMP\_DATE 関数](r_TIMESTAMP_CMP_DATE.md)
+ [TIMESTAMP\_CMP\_TIMESTAMPTZ 関数](r_TIMESTAMP_CMP_TIMESTAMPTZ.md)
+ [TIMESTAMPTZ\_CMP 関数](r_TIMESTAMPTZ_CMP.md)
+ [TIMESTAMPTZ\_CMP\_DATE 関数](r_TIMESTAMPTZ_CMP_DATE.md)
+ [TIMESTAMPTZ\_CMP\_TIMESTAMP 関数](r_TIMESTAMPTZ_CMP_TIMESTAMP.md)
+ [TIMEZONE 関数](r_TIMEZONE.md)
+ [TO\_TIMESTAMP 関数](r_TO_TIMESTAMP.md)
+ [TRUNC 関数](r_TRUNC_date.md)
+ [日付関数またはタイムスタンプ関数の日付部分](r_Dateparts_for_datetime_functions.md)

## 日付と時刻関数の概要
<a name="date-functions-summary"></a>


| 関数 | 構文 | 戻り値 | 
| --- | --- | --- | 
| [\+ (連結) 演算子](r_DATE-CONCATENATE_function.md)\+ 記号の両側のいずれかの方で日付を時刻に連結し、TIMESTAMP または TIMESTAMPTZ を返します。 | date \+ time | TIMESTAMP-または-TIMESTAMPZ | 
| [ADD\_MONTHS](r_ADD_MONTHS.md)日付またはタイムスタンプに、指定された月数を追加します。 |  ADD\_MONTHS ({date\|timestamp}, integer) | TIMESTAMP | 
| [AT TIME ZONE](r_AT_TIME_ZONE.md)TIMESTAMP 式または TIMESTAMPTZ 式で使用するタイムゾーンを指定します。 |  AT TIME ZONE 'timezone' | TIMESTAMP-または-TIMESTAMPZ | 
| [CONVERT\_TIMEZONE](CONVERT_TIMEZONE.md)タイムスタンプのタイムゾーンを別のタイムゾーンに変換します。 | CONVERT\_TIMEZONE (['timezone',] 'timezone', timestamp) | TIMESTAMP | 
| [CURRENT\_DATE](r_CURRENT_DATE_function.md)現在のトランザクションの開始時の日付を、現在のセッションのタイムゾーン (デフォルトは UTC) で返します。 | CURRENT\_DATE | DATE | 
| [DATE\_CMP](r_DATE_CMP.md)2 つの日付を比較し、日付が同一である場合は `0`、*date1* が大きい場合は `1`、*date2* が大きい場合は `-1` を返します。 | DATE\_CMP (date1, date2) | INTEGER | 
| [DATE\_CMP\_TIMESTAMP](r_DATE_CMP_TIMESTAMP.md)日付を時刻と比較し、値が同一の場合は `0`、*date* が大きい場合は `1`、*timestamp* が大きい場合は `-1` を返します。 | DATE\_CMP\_TIMESTAMP (date, timestamp) | INTEGER | 
| [DATE\_CMP\_TIMESTAMPTZ](r_DATE_CMP_TIMESTAMPTZ.md)日付とタイムゾーン付きのタイムスタンプを比較し、値が同一の場合は `0`、*date* が大きい場合は `1`、*timestamptz* が大きい場合は `-1` を返します。 | DATE\_CMP\_TIMESTAMPTZ (date, timestamptz) | INTEGER | 
| [DATE\_PART\_YEAR](r_DATE_PART_YEAR.md)日付から年を抽出します。 | DATE\_PART\_YEAR (date) | INTEGER | 
| [DATEADD](r_DATEADD_function.md)指定された間隔で日付または時刻を増分します。 | DATEADD (datepart, interval, {date\|time\|timetz\|timestamp}) | TIMESTAMP または TIME または TIMETZ | 
| [DATEDIFF](r_DATEDIFF_function.md)日または月などの特定の日付部分の 2 つの日付または時刻の差を返します。 | DATEDIFF (datepart, {date\|time\|timetz\|timestamp}, {date\|time\|timetz\|timestamp}) | BIGINT | 
| [DATE\_PART](r_DATE_PART_function.md)日付または時刻から日付部分の値を抽出します。 | DATE\_PART (datepart, {date\|timestamp}) | DOUBLE | 
| [DATE\_TRUNC](r_DATE_TRUNC.md)日付部分に基づいてタイムスタンプを切り捨てます。 | DATE\_TRUNC ('datepart', timestamp) | TIMESTAMP | 
| [EXTRACT](r_EXTRACT_function.md)timestamp、timestamptz、time、または timetz から日付または時刻部分を抽出します。 | EXTRACT (datepart FROM source) | INTEGER or DOUBLE | 
| [GETDATE](r_GETDATE.md)現在のセッションのタイムゾーン (デフォルトでは UTC) で現在の日付と時刻を返します。かっこが必要です。 | GETDATE() | TIMESTAMP | 
| [INTERVAL\_CMP](r_INTERVAL_CMP.md)2 つの間隔を比較し、間隔が等しい場合は `0`、*interval1* が大きい場合は `1`、*interval2* が大きい場合は `-1` を返します。 | INTERVAL\_CMP (interval1, interval2) | INTEGER | 
| [LAST\_DAY](r_LAST_DAY.md)*date* を含む月の最終日の日付を返します。 | LAST\_DAY(date) | DATE | 
| [MONTHS\_BETWEEN](r_MONTHS_BETWEEN_function.md)2 つの日付の間の月数を返します。 | MONTHS\_BETWEEN (date, date) | FLOAT8 | 
| [NEXT\_DAY](r_NEXT_DAY.md)指定の*日付*より後に指定の*曜日*となる最初のインスタンスの日付を返します。 | NEXT\_DAY (date, day) | DATE | 
| [SYSDATE](r_SYSDATE.md)現在のトランザクション開始時の日付と時刻 (UTC) を返します。 | SYSDATE | TIMESTAMP | 
| [TIMEOFDAY](r_TIMEOFDAY_function.md)現在のセッションのタイムゾーン (デフォルトでは UTC) で、現在の曜日、日付、時刻を文字列値として返します。 | TIMEOFDAY() | VARCHAR | 
| [TIMESTAMP\_CMP](r_TIMESTAMP_CMP.md)2 つのタイムスタンプを比較し、タイムスタンプが等しい場合は `0`、*timestamp1* が大きい場合は `1`、*timestamp2* が大きい場合は `-1` を返します。 | TIMESTAMP\_CMP (timestamp1, timestamp2) | INTEGER | 
| [TIMESTAMP\_CMP\_DATE](r_TIMESTAMP_CMP_DATE.md)タイムスタンプと日付を比較し、値が同一の場合は `0`、*timestamp* が大きい場合は `1`、*date* が大きい場合は `-1` を返します。 | TIMESTAMP\_CMP\_DATE (timestamp, date) | INTEGER | 
| [TIMESTAMP\_CMP\_TIMESTAMPTZ](r_TIMESTAMP_CMP_TIMESTAMPTZ.md)タイムスタンプをタイムゾーン付きのタイムスタンプと比較し、値が等しい場合は `0`、*timestamp* が大きい場合は `1`、*timestamptz* が大きい場合は `-1` を返します。 | TIMESTAMP\_CMP\_TIMESTAMPTZ (timestamp, timestamptz) | INTEGER | 
| [TIMESTAMPTZ\_CMP](r_TIMESTAMPTZ_CMP.md)タイムゾーン付きの 2 つのタイムスタンプの値を比較し、値が等しい場合は `0`、*timestamptz1* がより大きい場合は `1`、*timestamptz2* がより大きい場合は `-1` を返します。 | TIMESTAMPTZ\_CMP (timestamptz1, timestamptz2) | INTEGER | 
| [TIMESTAMPTZ\_CMP\_DATE](r_TIMESTAMPTZ_CMP_DATE.md)タイムゾーン付きのタイムスタンプの値と日付を比較し、値が等しい場合は `0`、*timestamptz* が大きい場合は `1`、*date* が大きい場合は `-1` を返します。 | TIMESTAMPTZ\_CMP\_DATE (timestamptz, date) | INTEGER | 
| [TIMESTAMPTZ\_CMP\_TIMESTAMP](r_TIMESTAMPTZ_CMP_TIMESTAMP.md)タイムゾーン付きのタイムスタンプをタイムスタンプと比較し、値が等しい場合は `0`、*timestamptz* が大きい場合は `1`、*timestamp* が大きい場合は `-1` を返します。 | TIMESTAMPTZ\_CMP\_TIMESTAMP (timestamptz, timestamp) | INTEGER | 
| [TIMEZONE](r_TIMEZONE.md)指定されたタイムゾーンのタイムスタンプとタイムスタンプ値を返します。 | TIMEZONE ('timezone' { timestamp \| timestamptz ) | TIMESTAMP-または-TIMESTAMPTZ | 
| [TO\_TIMESTAMP](r_TO_TIMESTAMP.md)指定されたタイムスタンプのタイムゾーンを含むタイムスタンプとタイムゾーン形式を返します。 | TO\_TIMESTAMP ('timestamp', 'format') | TIMESTAMPTZ | 
| [TRUNC](r_TRUNC_date.md)タイムスタンプを切り捨て、日付を返します。 | TRUNC(timestamp) | DATE | 

**注記**  
うるう秒は経過時間の計算では考慮されません。

## トランザクションにおける日付および時刻関数
<a name="date-functions-transactions"></a>

トランザクションブロック (BEGIN … END) 内で次の関数を実行すると、関数は現在のステートメントではなく、現在のトランザクションの開始日または開始時刻を返します。
+ SYSDATE
+ TIMESTAMP
+ CURRENT\_DATE

次の関数は、トランザクションブロック内にある場合でも、現在のステートメントの開始日または開始時刻を常に返します。
+ GETDATE
+ TIMEOFDAY

## 廃止されたリーダーノード専用の関数
<a name="date-functions-deprecated"></a>

次の日付関数は、リーダーノードのみで実行されるため、非推奨となりました。詳細については、「[リーダーノード専用関数](c_SQL_functions_leader_node_only.md)」を参照してください。
+ AGE。代わりに [DATEDIFF 関数](r_DATEDIFF_function.md) を使用します。
+ CURRENT\_TIME。代わりに [GETDATE 関数](r_GETDATE.md) または [SYSDATE](r_SYSDATE.md) を使用します。
+ CURRENT\_TIMESTAMP。代わりに [GETDATE 関数](r_GETDATE.md) または [SYSDATE](r_SYSDATE.md) を使用します。
+ LOCALTIME。代わりに [GETDATE 関数](r_GETDATE.md) または [SYSDATE](r_SYSDATE.md) を使用します。
+ LOCALTIMESTAMP。代わりに [GETDATE 関数](r_GETDATE.md) または [SYSDATE](r_SYSDATE.md) を使用します。
+ ISFINITE 
+ NOW。代わりに [GETDATE 関数](r_GETDATE.md) または [SYSDATE](r_SYSDATE.md) を使用します。マテリアライズドビュー内で NOW 関数を使用する場合、現在のタイムスタンプではなく、マテリアライズドビューの作成時のタイムスタンプが設定されます。