すべてのプロダクト
Search
ドキュメントセンター

Dataphin:日付関数

最終更新日:Feb 06, 2025

ADB_PG_SQL ノードでは、日付関数は指定された文字列の柔軟な処理を可能にします。 このトピックでは、ADB_PG_SQL ノードでサポートされている日付関数の構文、パラメーターの説明、および例を概説し、開発における文字列関数の使用に関するガイダンスを提供します。

AnalyticDB for PostgreSQL でサポートされている文字列関数は次のとおりです。

関数

機能

age

パラメーターを減算して、日数だけでなく、年と月で「記号的な」結果を生成します。

age

指定された日付と現在の日付の差を計算します。

clock_timestamp

文の実行中に変化する現在の日付と時刻を提供します。

current_date

現在の日付を返します。

current_time

現在の時刻を提供します。

current_timestamp

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

date_part

指定されたサブフィールドを抽出します (extract と同等)。

date_trunc

指定された精度に切り捨てます。

date_trunc

指定された精度に切り捨てます。

extract

指定されたサブフィールドを抽出します。

extract

指定されたサブフィールドを抽出します。

isfinite

有限の日付 ( +/- 無限大ではない) をテストします。

isfinite

有限のタイムスタンプ ( +/- 無限大ではない) をテストします。

isfinite

有限の間隔をテストします。

justify_days

間隔を調整して、30 日の期間を月として表します。

justify_hours

間隔を調整して、24 時間の期間を日として表します。

justify_interval

追加の符号調整を使用して、justify_days および justify_hours を使用して間隔を調整します。

localtime

現在の時刻を提供します。

localtimestamp

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

make_date

年、月、日のフィールドから日付を作成します。

make_interval

年、月、週、日、時、分、秒のフィールドから間隔を作成します。

make_time

時、分、秒のフィールドから時刻を作成します。

make_timestamp

年、月、日、時、分、秒のフィールドからタイムスタンプを作成します。

make_timestamptz

デフォルトで現在のタイムゾーンを使用して、年、月、日、時、分、秒のフィールドからタイムゾーン付きのタイムスタンプを作成します。

now

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

statement_timestamp

現在の文の開始時の現在の日付と時刻を提供します。

timeofday

clock_timestamp と同様に、現在の日付と時刻をテキスト文字列として返します。

transaction_timestamp

現在のトランザクションの開始時の現在の日付と時刻を提供します。

age

  • コマンド構文

age(timestamp, timestamp)
  • コマンドの説明:日数だけでなく、パラメーターを減算することにより、年と月で「記号的な」結果を生成します。

  • パラメーターの説明:

    timestamp:必須。 計算対象の日付。

    timestamp:必須。 比較対象の日付。

  • 戻り値の説明:日付から指定されたパラメーターを減算した後の、年と月での「記号的な」結果を返します。

  • 例:

    SELECT age(timestamp '2010-02-02', timestamp '2001-01-01');
    -- 9 years 1 mon 1 day を返します

age

  • コマンド構文

age(timestamp)
  • コマンドの説明:現在の日付から指定された日付を減算します。

  • パラメーターの説明:

    timestamp:必須。 計算対象の日付。

  • 戻り値の説明:現在の日付と指定された日付の差を表す整数を返します。

  • 例:

    SELECT age(timestamp '1996-05-02');
    -- 21 years 4 mons 12 days を返します

clock_timestamp

  • コマンド構文

clock_timestamp()
  • コマンドの説明:文の実行中に変化する可能性のある現在の日付と時刻を取得します。

  • 戻り値の説明:関数が実行された瞬間のシステムの日付と時刻 (タイムゾーン情報を含む) を返します。

  • 例:

    SELECT clock_timestamp();
    -- 2023-01-03 15:38:44.332799 を返します

current_date

  • コマンド構文

current_date
  • コマンドの説明:現在のシステム日付を取得します。

  • 戻り値の説明:YYYY-MM-DD 形式の現在のシステム日付を返します。

  • 例:

    SELECT current_date;
    -- 2023-01-03 を返します

current_time

  • コマンド構文

current_time
  • コマンドの説明:現在のシステム時刻を取得します。

  • 戻り値の説明:HH:MI:SS.ssssss{+|-}ZZ 形式のタイムゾーン情報を含むシステム時刻を返します。

  • 例:

    SELECT current_time;
    -- 20:37:44.688689+03 を返します

current_timestamp

  • コマンド構文

current_timestamp
  • コマンドの説明:現在のトランザクションの開始時の現在の日付と時刻を取得します。

  • 戻り値の説明:現在のトランザクションの開始時の現在の日付と時刻を返します。

  • 例:

    SELECT current_timestamp;
    -- 2023-01-01 15:55:37.222601+03 を返します

date_part

  • コマンド構文

date_part(text, timestamp)
  • コマンドの説明:extract コマンドと同様に、指定されたサブフィールドを抽出します。

  • パラメーターの説明:

    text:必須。 抽出する部分を文字列で表します。

    timestamp:必須。 timestamp、date、time、または interval 型を指定できます。

  • 戻り値の説明:timestamp から文字列 text で指定された部分を返します。

  • 例:

    SELECT date_part('century', TIMESTAMP '2023-01-01 12:41:13.662522');
    -- 21 を返します

date_trunc

  • コマンド構文

date_trunc(text, timestamp)
  • コマンドの説明:指定された精度に切り捨てます。

  • パラメーターの説明:

    string:必須。 切り捨てる部分を文字列で表します。

  • 戻り値の説明:指定された時刻を指定された部分に切り捨てて返します。

  • 例:

    SELECT date_trunc('year', TIMESTAMP '2023-01-01 12:41:13.662522');
    -- 2023-01-01 00:00:00.0 を返します

date_trunc

  • コマンド構文

date_trunc(text, interval)
  • コマンドの説明:interval 型の値に対して、指定された精度に切り捨てます。

  • パラメーターの説明:

    string:必須。 切り捨てる部分を文字列で表します。

  • 戻り値の説明:指定された interval 値を指定された部分に切り捨てて返します。

  • 例:

    SELECT date_trunc('hour', INTERVAL '1 days 20:10:10');
    -- 1 day 20:00:00 を返します

extract

  • コマンド構文

extract(field from timestamp)
  • コマンドの説明:指定されたサブフィールドを抽出します。

  • パラメーターの説明:

    field:必須。 抽出する部分を文字列で表します。

    timestamp:必須。 タイムスタンプ。

  • 戻り値の説明:指定された timestamp または interval 値を指定された部分に切り捨てて返します。

  • <

    例:

    SELECT extract(CENTURY FROM TIMESTAMP '2023-01-01 12:41:13.662522');
    -- 21 を返します

extract

  • コマンド構文

extract(field from interval)
  • コマンドの説明:指定されたサブフィールドを抽出します。

  • パラメーターの説明:

    field:必須。 抽出する部分を文字列で表します。

    timestamp:必須。 interval 値。

  • 戻り値の説明:指定された timestamp または interval 値を指定された部分に切り捨てて返します。

  • 例:

    SELECT extract(DAY FROM INTERVAL '2 days 10 minutes');
    -- 2 を返します

isfinite

  • コマンド構文

isfinite(date)
  • コマンドの説明:有限の日付 ( +/- 無限大ではない) をテストします。

  • パラメーターの説明:

    string:必須。 桁数を計算する必要がある文字列。

  • 戻り値の説明:指定された文字列の桁数を表す整数を返します。

  • 例:

    SELECT isfinite(DATE '2023-01-01');
    -- t を返します

isfinite

  • コマンド構文

isfinite(timestamp)
  • コマンドの説明:有限のタイムスタンプ ( +/- 無限大ではない) をテストします。

  • パラメーターの説明:

    timestamp:必須。 検出対象の timestamp 値。

  • 戻り値の説明:指定された date、timestamp、または interval 値が有限かどうかを示すブール値を返します。

  • 例:

    SELECT isfinite(TIMESTAMP '2023-01-01 12:41:13.662522');
    -- t を返します

isfinite

  • コマンド構文

isfinite(interval)
  • コマンドの説明:有限の間隔値 ( +/- 無限大ではない) をテストします。

  • パラメーターの説明:

    interval:必須。 検出対象の interval 値。

  • 戻り値の説明:指定された date、timestamp、または interval 値が有限かどうかを示すブール値を返します。

  • 例:

    isfinite(INTERVAL '2 days 10 minutes');
    -- t を返します

justify_days

  • コマンド構文

justify_days(interval)
  • コマンドの説明:間隔を調整して、30 日の期間を月として表します。

  • パラメーターの説明:

    interval:必須。 変換対象の interval 値。

  • 戻り値の説明:指定された文字列の桁数を表す整数を返します。

  • 例:

    SELECT justify_days(INTERVAL '20 days');
    -- 20 days を返します

justify_hours

  • コマンド構文

justify_hours(interval)
  • コマンドの説明:間隔を調整して、24 時間の期間を日として表します。

  • パラメーターの説明:

    interval:必須。 変換対象の interval 値。

  • 戻り値の説明:24 時間未満の間隔は変更せずに、間隔内で 24 時間を超える時間を日数に変換します。

  • 例:

    SELECT justify_hours(INTERVAL '20 hours');
    -- 20:00:00 を返します

justify_interval

  • コマンド構文

justify_interval
  • コマンドの説明:符号調整を含め、justify_days および justify_hours を使用して間隔を調整します。

  • パラメーターの説明:

    string:必須。 変換対象の interval 値。

  • 戻り値の説明:時間間隔の表現を変換し、該当する場合は時間を日数に、日数を月数に調整します。

  • 例:

    SELECT justify_interval(INTERVAL '6000 hours');
    -- 8 mons 10 days を返します

localtime

  • コマンド構文

localtime
  • コマンドの説明:現在の時刻を取得します。

  • 戻り値の説明:HH:MM:SS.ssssss 形式の現在のシステム時刻を返します。

  • 例:

    SELECT localtime;
    -- 64 を返します

localtimestamp

  • コマンド構文

localtimestamp
  • コマンドの説明:現在のトランザクションの開始時の現在の日付と時刻を取得します。

  • 戻り値の説明:関数が属するトランザクションの開始時のシステムの日付と時刻を返します。

  • 例:

    SELECT localtimestamp;
    -- 16:43:04.582222 を返します

make_date

  • コマンド構文

make_date(year, month, day)
  • コマンドの説明:年、月、日のフィールドから日付を作成します。

  • パラメーターの説明:

    year:年の整数値。

    month:月の整数値。

    day:日の整数値。

  • 戻り値の説明:指定された年、月、日のフィールドから作成された日付値を返します。 負の年は紀元前の日付を示します。

  • 例:

    SELECT make_date(2023, 01, 01);
    -- 2023-01-01 を返します

make_interval

  • コマンド構文

make_interval
  • コマンドの説明:年、月、週、日、時、分、秒のフィールドから間隔を作成します。

  • 戻り値の説明:指定されたフィールドから作成された interval 値を返します。

  • 例:

    SELECT make_interval(1, 2, 3, 4,5, 6, 1.123);
    -- 1 year 2 mons 25 days 05:06:01.123 を返します

make_time

  • コマンド構文

make_time(hour, minute, second)
  • コマンドの説明:時、分、秒のフィールドから時刻を作成します。

  • パラメーターの説明:

    hour:必須。 時の整数値。

    minute:必須。 分の整数値。

    second:必須。 秒の浮動小数点数。

  • 戻り値の説明:指定された時、分、秒のフィールドから作成された時刻値を返します。

  • 例:

    SELECT make_time(20, 55, 25.517606);
    -- 20:55:25.517606 を返します

make_timestamp

  • コマンド構文

make_timestamp(year, month, day, hour, minute, second)
  • コマンドの説明:年、月、日、時、分、秒のフィールドからタイムスタンプを作成します。

  • パラメーターの説明:

    パラメーターの説明:

    year:必須。 年を整数値で指定します。

    month:必須。 月の整数値。

    day:必須。 日の整数値。

    hour:必須。 時の整数値。

    minute:必須。 分の整数値。

  • 戻り値の説明:この関数は、指定された年、月、日、時、分、秒からタイムスタンプを生成します。 負の年は紀元前の日付を示します。

  • 例:

    SELECT make_timestamp(2023, 01, 01, 20, 55, 25.517606);
    -- 2023-01-01 20:55:25.517606 を返します

make_timestamptz

  • コマンド構文

make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])
  • コマンドの説明:指定されていない場合はデフォルトで現在のタイムゾーンを使用して、年、月、日、時、分、秒のフィールドからタイムゾーン付きのタイムスタンプを作成します。

  • パラメーターの説明:

    パラメーターの説明:

    year:必須。 年の整数値を指定します。

    month:必須。 月の整数値。

    day:必須。 日の整数値。

    hour:必須。 時の整数値。

    minute:必須。 分の整数値。

    timezone:オプション。 タイムゾーンを表す文字列。 デフォルトは現在のタイムゾーンです。

  • 戻り値の説明:この関数は、指定された年、月、日、時、分、秒、およびタイムゾーンのフィールドから組み立てられた、タイムゾーン付きのタイムスタンプを生成します。 負の年は紀元前の日付を示します。

  • 例:

    SELECT make_timestamptz(2023, 01, 01, 20, 55, 25.517606);
    -- 2023-01-01 20:55:25.517606+08 を返します

now

  • コマンド構文

now()
  • コマンドの説明:現在の⽇付と時刻を取得します。 これは、関数が属するトランザクションの開始時のシステムの⽇付と時刻に対応します。

  • 戻り値の説明:タイムゾーン情報を含む日付と時刻を返します。 これは、関数が属するトランザクションの開始時のシステムの⽇付と時刻に対応します。

  • 例:

    SELECT now();
    -- 2023-01-03 16:05:27.182015 を返します

statement_timestamp

  • コマンド構文

statement_timestamp()
  • コマンドの説明:現在の文の開始時の現在の日付と時刻を取得します。

  • 戻り値の説明:タイムゾーン情報を含む日付と時刻を返します。 これは、関数が属する文の開始時のシステムの⽇付と時刻に対応します。

  • 例:

    SELECT statement_timestamp();
    -- 2023-01-03 16:08:27.273888 を返します

timeofday

  • コマンド構文

timeofday()
  • コマンドの説明:clock_timestamp と同様に、現在の日付と時刻を取得しますが、テキスト文字列としてフォーマットされます。

  • 戻り値の説明:関数が実行されたときのシステムの日付と時刻 (タイムゾーン情報を含む) をテキスト文字列で返します。

  • 例:

    SELECT timeofday();
    -- Tue Jan  3 16:08:09.228504 2023 CST を返します

transaction_timestamp

  • コマンド構文

transaction_timestamp()
  • コマンドの説明:関数が属するトランザクションの開始時の現在の日付と時刻を取得します。

  • 戻り値の説明:タイムゾーン情報を含む日付と時刻を返します。 これは、関数が属するトランザクションの開始時のシステムの⽇付と時刻に対応します。

  • 例:

    SELECT transaction_timestamp();
    -- 2023-01-03 16:08:06.276571 を返します