PolarDB for PostgreSQL (Oracleと互換) は、nls_timestamp_format関数とnls_timestamp_tz_format関数をサポートしています。
概要
nls_timestamp_format関数は、pg_catalog.to_char(arg1 timestamp)およびpg_catalog.to_timestamp(arg1 text)関数の変換形式、およびtimestampデータ型の出力形式を制御します。nls_timestamp_tz_format関数は、pg_catalog.to_char(arg1 timestamptz)およびpg_catalog.to_timestamp_tz(arg1 text)関数の変換形式と、timestamptzデータ型の出力形式を制御します。
説明
TIMESTAMPとTIMESTAMP without time zoneは同じデータ型です。TIMESTAMPTZとTIMESTAMPTZ with time zoneは同じデータ型です。
Usage
- nls_timestamp_形式
nls_timestamp_formatの初期値は''です。SETステートメントを実行して、nls_timestamp_formatをサポートされているTIMESTAMPデータ型に設定できます。 形式が無効な場合は、エラーが報告されます。値をリセットするには、
reset nls_timestamp_format;文を実行します。YYYY/MM/DD HH24:MI:SS形式の例:nls_timestamp_formatをYYYY/MM/DD HH24:MI:SSに設定します。
サンプル結果:nls_timestamp_formatを 'YYYY/MM/DD HH24:MI:SS 'に設定します。setYYYY/MM/DD HH24:MI:SS形式で2021-11-11 11:11を変換し、to_char関数を実行します。
サンプル結果:select to_char('2021-11-11 11:11:11 '::timestamp);to_char --------------------- 2021/11/11 11:11:11 (1行)YYYY/MM/DD HH24:MI:SS形式で2021-11-11 11:11を変換し、to_timestamp関数を実行します。
サンプル結果:select to_timestamp('2021/11/11 11:11:11 '::text);to_timestamp --------------------- 2021/11/11 11:11:11 (1行)timestampデータ型をYYYY/MM/DD HH24:MI:SS形式で表示します。
サンプル結果:select '2021-11-11 11:11:11 '::timestamp;timestamp --------------------- 2021/11/11 11:11:11 (1行)
説明to_timestamp(arg1 TEXT)のarg1の形式は、nls_timestamp_formatで指定された形式とまったく同じである必要があります。 それ以外の場合、エラーまたは予期しない結果が返されます。# nls_timestamp_formatをYYYY/MM/DD HH:MI:SS.FFに設定します。 nls_timestamp_format = 'YYYY/MM/DD HH:MI:SS.FF' を設定します。# サンプル結果: セット #2000-03-28 08:00:00をYYYY/MM/DD HH:MI:SS.FF形式で変換し、to_timestamp関数を実行します。 to_timestamp('2000-03-28 08:00:00 ') を選択します。# サンプル結果: エラー: 日付 /時刻フィールドの範囲外の値: "2000-03-28 08:00:00" コンテキスト: PL/pgSQL関数to_timestamp(text) 7行目RETURN - nls_timestamp_tz_形式
nls_timestamp_tz_format関数の初期値は''です。SETステートメントを実行して、nls_timestamp_tz_formatをサポートされているTIMESTAMPTZデータ型に設定できます。 形式が無効な場合は、エラーが報告されます。値をリセットするには、
reset nls_timestamp_tz_format;文を実行します。YYYY/MM/DD HH24:MI:DD TZH:TZM形式の例:nls_timestamp_formatをYYYY/MM/DD HH24:MI:DD TZH:TZMに設定します。
に設定します。サンプル結果:nls_timestamp_tz_formatを 'YYYY/MM/DD HH24:MI:SS TZH:TZM';set2021-11-11 11:11:11 + 8をYYYY/MM/DD HH24:MI:DD TZH:TZM形式で変換し、to_char関数を実行します。
サンプル結果:select to_char('2021-11-11 11:11:11 + 8 '::timestamptz);to_char ---------------------------- 2021/11/11 03:11:11 00:00 (1行)YYYY/MM/DD HH24:MI:DD TZH:TZM形式で2021/11/11 11:11:11 + 8を変換し、to_timestamp関数を実行します。
サンプル結果:select to_timestamp_tz('2021/11/11 11:11:11 + 8 '::text);to_timestamp_tz ---------------------------- 2021/11/11 03:11:11 00:00 (1行)timestamptzデータ型をYYYY/MM/DD HH24:MI:DD TZH:TZM形式で表示します。
サンプル結果:select '2021/11/11 11:11:11 + 8 '::timestamptztimestamptz ---------------------------- 2021/11/11 03:11:11 00:00 (1行)
説明to_timestamp_tz(arg1 TEXT)のarg1の形式は、nls_timestamp_formatで指定された形式とまったく同じである必要があります。 それ以外の場合、エラーまたは予期しない結果が返されます。# nls_timestamp_tz_formatをYYYY/MM/DD HH:MI:SS.FF TZH:TZMに設定する。set nls_timestamp_tz_format = 'YYYY/MM/DD HH:MI:SS.FF TZH:TZM'; # サンプル結果: セット # YYYY/MM/DD HH:MI:SS.FF TZH:TZM形式で2000-03-28 08:00:00 + 8を変換し、to_timestamp関数を実行します。 to_timestampを選択します ('2000-03-28 08:00:00 + 8 '); # サンプル結果: エラー: 日付 /時刻フィールドの範囲外の値: "2000-03-28 08:00:00 + 8" コンテキスト: PL/pgSQL関数to_timestamp(text) 7行目RETURN