AnalyticDB for PostgreSQL は、PostgreSQL のデータ型フォーマット関数をサポートしています。これらの関数は、タイムスタンプ、間隔、数値、およびフォーマット済み文字列の間で値を変換します。PostgreSQL の完全な仕様については、「データ型のフォーマット関数」をご参照ください。
フォーマット関数
| 関数 | 戻り値の型 | 説明 | 例 |
|---|---|---|---|
to_char(timestamp, text) | text | 指定されたフォーマットを使用して、タイムスタンプを文字列に変換します。 | to_char(current_timestamp, 'HH12:MI:SS') |
to_char(interval, text) | text | 指定されたフォーマットを使用して、間隔を文字列に変換します。 | to_char(interval '15h 2m 12s', 'HH24:MI:SS') |
to_char(int, text) | text | 指定されたフォーマットを使用して、整数を文字列に変換します。 | to_char(125, '999') |
to_char(double precision, text) | text | 指定されたフォーマットを使用して、REAL または DOUBLE PRECISION 値を文字列に変換します。 | to_char(125.8::real, '999D9') |
to_char(numeric, text) | text | 指定されたフォーマットを使用して、数値を文字列に変換します。 | to_char(-125.8, '999D99S') |
to_date(text, text) | date | 指定されたフォーマットを使用して、文字列を日付に変換します。 | to_date('05 Dec 2000', 'DD Mon YYYY') |
to_number(text, text) | numeric | 指定されたフォーマットを使用して、文字列を数値に変換します。 | to_number('12,454.8-', '99G999D9S') |
to_timestamp(text, text) | timestamp with time zone | 指定されたフォーマットを使用して、文字列をタイムスタンプに変換します。 | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
日時フォーマット用のテンプレートパターン
パターン
| パターン | 説明 |
|---|---|
HH | 1 日の時刻(01~12)。 |
HH12 | 1 日の時刻(01~12)。 |
HH24 | 1 日の時刻(00~23)。 |
MI | 分(00~59)。 |
SS | 秒(00~59)。 |
MS | ミリ秒(000~999)。 |
US | マイクロ秒(000000~999999)。 |
SSSS | 真夜中からの経過秒数(0~86399)。 |
AM、am、PM、pm | ピリオドなしの午前/午後表示子。 |
A.M.、a.m.、P.M.、p.m. | ピリオド付きの午前/午後表示子。 |
Y,YYY | 4 桁以上の年(桁区切り記号としてカンマを使用)。 |
YYYY | 4 桁以上の年(桁区切り記号なし)。 |
YYY | 年の下位 3 桁。 |
YY | 年の下位 2 桁。 |
Y | 年の下位 1 桁。 |
IYYY | ISO 8601 週番号方式による年(4 桁以上)。 |
IYY | ISO 8601 週番号方式による年の下位 3 桁。 |
IY | ISO 8601 週番号方式による年の下位 2 桁。 |
I | ISO 8601 週番号方式による年の下位 1 桁。 |
BC、bc、AD、ad | ピリオドなしの時代表示子。 |
B.C.、b.c.、A.D.、a.d. | ピリオド付きの時代表示子。 |
MONTH | 大文字の月名(全角スペースで 9 文字にパディング)。 |
Month | 先頭文字のみ大文字の月名(全角スペースで 9 文字にパディング)。 |
month | 小文字の月の完全な名称を、スペースでパディングして9文字分にする。 |
MON | 大文字の省略月名(ローカライズされた省略形に応じて長さが可変)。 |
Mon | 先頭文字のみ大文字の省略月名(ローカライズされた省略形に応じて長さが可変)。 |
mon | 小文字の省略月名(ローカライズされた省略形に応じて長さが可変)。 |
MM | 月番号(01~12)。 |
DAY | 大文字の曜日名(全角スペースで 9 文字にパディング)。 |
Day | 先頭文字のみ大文字の曜日名(全角スペースで 9 文字にパディング)。 |
day | 小文字の曜日名(全角スペースで 9 文字にパディング)。 |
DY | 大文字の省略曜日名(ローカライズされた省略形に応じて長さが可変)。 |
Dy | 先頭文字のみ大文字の省略曜日名(ローカライズされた省略形に応じて長さが可変)。 |
dy | 小文字の省略曜日名(ローカライズされた省略形に応じて長さが可変)。 |
DDD | 年の通算日数(001~366)。 |
IDDD | ISO 8601 週番号方式による年の日付(001~371)。初日は第 1 ISO 週の月曜日です。 |
DD | 月の日付(01~31)。 |
D | 曜日(1~7、1 = 日曜日、7 = 土曜日)。 |
ID | ISO 8601 曜日(1~7、1 = 月曜日、7 = 日曜日)。 |
W | 月の週(1~5)。第 1 週は月の初日から始まります。 |
WW | 年の週(1~53)。第 1 週は年の初日から始まります。 |
IW | ISO 8601 週番号方式による年の週(01~53)。年の第 1 木曜日が第 1 週に含まれます。 |
CC | 2 桁の世紀。21 世紀は 2001 年 1 月 1 日から開始されます。 |
J | ユリウス日。値は、UTC 協定世界時 (UTC) における紀元前 4714 年 11 月 24 日の真夜中から経過した日数です。 |
Q | 四半期。ただし、to_date() および to_timestamp() では無視されます。 |
RM | 大文字のローマ数字による月(I~XII、1 月~12 月)。 |
rm | 小文字のローマ数字による月(i~xii、1 月~12 月)。 |
TZ | 大文字のタイムゾーン略称。ただし、to_char() のみでサポートされます。 |
tz | 小文字のタイムゾーン略称。ただし、to_char() のみでサポートされます。 |
TZH | タイムゾーンの時間オフセット。 |
TZM | タイムゾーンの分オフセット。 |
OF | UTC からのタイムゾーンオフセット。ただし、to_char() のみでサポートされます。 |
修飾子
| 修飾子 | 説明 | 例 |
|---|---|---|
FM プレフィックス | フィルモード。先行ゼロおよびパディングスペースを抑制します。 | FMMonth |
TH サフィックス | 大文字の序数接尾辞。 | DDTH → 12TH |
th サフィックス | 小文字の序数接尾辞。 | DDth → 12th |
FX プレフィックス | 固定グローバルフォーマットオプション。 | FX Month DD Day |
TM プレフィックス | 翻訳モード。lc_time 設定に基づいて、ローカライズされた曜日および月名を使用します。 | TMMonth |
SP サフィックス | スペルモード(未実装)。 | DDSP |
数値フォーマット用のテンプレートパターン
パターン
| パターン | 説明 |
|---|---|
9 | 桁位置。不必要な先頭および末尾の数字はスペースで置き換えられます。 |
0 | 桁位置。不必要な先頭および末尾の数字はゼロとして出力されます。 |
.(ピリオド) | 小数点。 |
,(カンマ) | グループ(桁区切り)記号。 |
PR | 負の値を山括弧(<>)で囲みます。 |
S | ロケール規則に従う符号文字。 |
L | ロケール規則に従う通貨記号。 |
D | ロケール規則に従う小数点。 |
G | ロケール規則に従うグループ区切り記号。 |
MI | 指定された位置にマイナス符号を配置(数値が負の場合のみ)。 |
PL | 指定された位置にプラス符号を配置(数値が正の場合のみ)。 |
SG | 指定された位置にプラスまたはマイナス符号を配置。 |
RN | ローマ数字(有効範囲:1~3999)。 |
TH または th | 序数接尾辞。 |
V | 指定された桁数だけ結果をシフトします。 |
EEEE | 科学的表記法の指数部。 |
修飾子
| 修飾子 | 説明 | 例 |
|---|---|---|
FM プレフィックス | フィルモード。末尾のゼロおよびパディングスペースを抑制します。 | FM99.99 |
TH サフィックス | 大文字の序数接尾辞。 | 999TH |
th サフィックス | 小文字の序数接尾辞。 | 999th |
to_char() 関数の使用例
| 式 | サンプル結果 |
|---|---|
to_char(current_timestamp, 'Day, DD HH12:MI:SS') | 'Tuesday , 06 05:39:18' |
to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS') | 'Tuesday, 6 05:39:18' |
to_char(-0.1, '99.99') | ' -.10' |
to_char(-0.1, 'FM9.99') | '-.1' |
to_char(-0.1, 'FM90.99') | '-0.1' |
to_char(0.1, '0.9') | ' 0.1' |
to_char(12, '9990999.9') | ' 0012.0' |
to_char(12, 'FM9990999.9') | '0012.' |
to_char(485, '999') | ' 485' |
to_char(-485, '999') | '-485' |
to_char(485, '9 9 9') | ' 4 8 5' |
to_char(1485, '9,999') | ' 1,485' |
to_char(1485, '9G999') | ' 1 485' |
to_char(148.5, '999.999') | ' 148.500' |
to_char(148.5, 'FM999.999') | '148.5' |
to_char(148.5, 'FM999.990') | '148.500' |
to_char(148.5, '999D999') | ' 148,500' |
to_char(3148.5, '9G999D999') | ' 3 148,500' |
to_char(-485, '999S') | '485-' |
to_char(-485, '999MI') | '485-' |
to_char(485, '999MI') | '485 ' |
to_char(485, 'FM999MI') | '485' |
to_char(485, 'PL999') | '+485' |
to_char(485, 'SG999') | '+485' |
to_char(-485, 'SG999') | '-485' |
to_char(-485, '9SG99') | '4-85' |
to_char(-485, '999PR') | '<485>' |
to_char(485, 'L999') | 'DM 485' |
to_char(485, 'RN') | ' CDLXXXV' |
to_char(485, 'FMRN') | 'CDLXXXV' |
to_char(5.2, 'FMRN') | 'V' |
to_char(482, '999th') | ' 482nd' |
to_char(485, '"Good number:"999') | 'Good number: 485' |
to_char(485.8, '"Pre:"999" Post:" .999') | 'Pre: 485 Post: .800' |
to_char(12, '99V999') | ' 12000' |
to_char(12.4, '99V999') | ' 12400' |
to_char(12.45, '99V9') | ' 125' |
to_char(0.0004859, '9.99EEEE') | ' 4.86e-04' |