日付および時刻関数 - Amazon Redshift

日付および時刻関数

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

日付と時刻関数の概要

関数 構文 戻り値
+ (連結) 演算子

+ 記号の両側のいずれかの方で日付を時刻に連結し、TIMESTAMP または TIMESTAMPTZ を返します。

date + time TIMESTAMP、または TIMESTAMPZ
ADD_MONTHS

日付またはタイムスタンプに、指定された月数を追加します。

ADD_MONTHS ({date|timestamp}, integer) TIMESTAMP
AT TIME ZONE

TIMESTAMP 式または TIMESTAMPTZ 式で使用するタイムゾーンを指定します。

AT TIME ZONE 'timezone' TIMESTAMP、または TIMESTAMPZ
CONVERT_TIMEZONE

タイムスタンプのタイムゾーンを別のタイムゾーンに変換します。

CONVERT_TIMEZONE (['timezone',] 'timezone', timestamp) TIMESTAMP
CURRENT_DATE

現在のトランザクションの開始時の日付を、現在のセッションのタイムゾーン (デフォルトは UTC) で返します。

CURRENT_DATE DATE
DATE_CMP

2 つの日付を比較し、日付が同一である場合は 0date1 が大きい場合は 1date2 が大きい場合は -1 を返します。

DATE_CMP (date1, date2) INTEGER
DATE_CMP_TIMESTAMP

日付を時刻と比較し、値が同一の場合は 0date が大きい場合は 1timestamp が大きい場合は -1 を返します。

DATE_CMP_TIMESTAMP (date, timestamp) INTEGER
DATE_CMP_TIMESTAMPTZ

日付とタイムゾーン付きのタイムスタンプを比較し、値が同一の場合は 0date が大きい場合は 1timestamptz が大きい場合は -1 を返します。

DATE_CMP_TIMESTAMPTZ (date, timestamptz) INTEGER
DATE_PART_YEAR

日付から年を抽出します。

DATE_PART_YEAR (date) INTEGER
DATEADD

指定された間隔で日付または時刻を増分します。

DATEADD (datepart, interval, {date|time|timetz|timestamp}) TIMESTAMP または TIME または TIMETZ
DATEDIFF

日または月などの特定の日付部分の 2 つの日付または時刻の差を返します。

DATEDIFF (datepart, {date|time|timetz|timestamp}, {date|time|timetz|timestamp}) BIGINT
DATE_PART

日付または時刻から日付部分の値を抽出します。

DATE_PART (datepart, {date|timestamp}) DOUBLE
DATE_TRUNC

日付部分に基づいてタイムスタンプを切り捨てます。

DATE_TRUNC ('datepart', timestamp) TIMESTAMP
EXTRACT

timestamp、timestamptz、time、または timetz から日付または時刻部分を抽出します。

EXTRACT (datepart FROM source) INTEGER or DOUBLE
GETDATE

現在のセッションのタイムゾーン (デフォルトでは UTC) で現在の日付と時刻を返します。かっこが必要です。

GETDATE() TIMESTAMP
INTERVAL_CMP

2 つの間隔を比較し、間隔が等しい場合は 0interval1 が大きい場合は 1interval2 が大きい場合は -1 を返します。

INTERVAL_CMP (interval1, interval2) INTEGER
LAST_DAY

date を含む月の最終日の日付を返します。

LAST_DAY(date) DATE
MONTHS_BETWEEN

2 つの日付の間の月数を返します。

MONTHS_BETWEEN (date, date) FLOAT8
NEXT_DAY

指定の日付より後に指定の曜日となる最初のインスタンスの日付を返します。

NEXT_DAY (date, day) DATE
SYSDATE

現在のトランザクション開始時の日付と時刻 (UTC) を返します。

SYSDATE TIMESTAMP
TIMEOFDAY

現在のセッションのタイムゾーン (デフォルトでは UTC) で、現在の曜日、日付、時刻を文字列値として返します。

TIMEOFDAY() VARCHAR
TIMESTAMP_CMP

2 つのタイムスタンプを比較し、タイムスタンプが等しい場合は 0timestamp1 が大きい場合は 1timestamp2 が大きい場合は -1 を返します。

TIMESTAMP_CMP (timestamp1, timestamp2) INTEGER
TIMESTAMP_CMP_DATE

タイムスタンプと日付を比較し、値が同一の場合は 0timestamp が大きい場合は 1date が大きい場合は -1 を返します。

TIMESTAMP_CMP_DATE (timestamp, date) INTEGER
TIMESTAMP_CMP_TIMESTAMPTZ

タイムスタンプをタイムゾーン付きのタイムスタンプと比較し、値が等しい場合は 0timestamp が大きい場合は 1timestamptz が大きい場合は -1 を返します。

TIMESTAMP_CMP_TIMESTAMPTZ (timestamp, timestamptz) INTEGER
TIMESTAMPTZ_CMP

タイムゾーン付きの 2 つのタイムスタンプの値を比較し、値が等しい場合は 0timestamptz1 がより大きい場合は 1timestamptz2 がより大きい場合は -1 を返します。

TIMESTAMPTZ_CMP (timestamptz1, timestamptz2) INTEGER
TIMESTAMPTZ_CMP_DATE

タイムゾーン付きのタイムスタンプの値と日付を比較し、値が等しい場合は 0timestamptz が大きい場合は 1date が大きい場合は -1 を返します。

TIMESTAMPTZ_CMP_DATE (timestamptz, date) INTEGER
TIMESTAMPTZ_CMP_TIMESTAMP

タイムゾーン付きのタイムスタンプをタイムスタンプと比較し、値が等しい場合は 0timestamptz が大きい場合は 1timestamp が大きい場合は -1 を返します。

TIMESTAMPTZ_CMP_TIMESTAMP (timestamptz, timestamp) INTEGER
TIMEZONE

指定されたタイムゾーンのタイムスタンプとタイムスタンプ値を返します。

TIMEZONE ('timezone' { timestamp | timestamptz ) TIMESTAMP、または TIMESTAMPTZ
TO_TIMESTAMP

指定されたタイムスタンプのタイムゾーンを含むタイムスタンプとタイムゾーン形式を返します。

TO_TIMESTAMP ('timestamp', 'format') TIMESTAMPTZ
TRUNC

タイムスタンプを切り捨て、日付を返します。

TRUNC(timestamp) DATE
注記

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

トランザクションにおける日付および時刻関数

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

  • SYSDATE

  • TIMESTAMP

  • CURRENT_DATE

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

  • GETDATE

  • TIMEOFDAY

廃止されたリーダーノード専用の関数

次の日付関数は、リーダーノードのみで実行されるため、非推奨となりました。詳細については、「リーダーノード専用関数」を参照してください。