Postgresを使用する場合は、to_char()
を使用できます。 指定された形式で数値を出力する関数。
それが機能する方法は、2つの引数を提供することです。最初の引数は、フォーマットされる数値です。 2番目の引数は、フォーマット方法を決定します。
戻り値はテキストです 。
要件によっては、たとえばcast()
を使用して、数値を適切なデータ型に変換することをお勧めします。 機能。
両方の方法の例を以下に示します。
例
これがデモンストレーションの基本的な例です。
SELECT to_char(10, '99.99');
結果:
10.00
9
この文脈では、実際には特別な意味があります。この文字は、数値をフォーマットするときにフォーマット文字列を構成できる有効なテンプレートパターンの1つです。
9
の場合 、桁の位置を指定しますが、先行ゼロの場合はスペースに置き換えられ、末尾ゼロの場合は塗りつぶしモードが指定されている場合は削除されます。
小数点以下の桁数と秒の小数部を削除すると、異なる結果が得られます。
SELECT to_char(10, '99');
結果:
10
先行ゼロを削除
9
を置き換えることができます 0
を使用 重要でない場合でも、先頭と末尾のゼロを抑制したい場合。
これが2つの違いを示す例です。
SELECT
to_char(0010, '9999') AS "9999",
to_char(0010, '0000') AS "0000";
結果:
9999 | 0000 -------+------- 10 | 0010
テンプレートパターン
前の例で見たように、フォーマット文字列は1つ以上のテンプレートパターンで構成されています。
例:9999
は、4つのテンプレートパターンで構成されるフォーマット文字列です。各パターンは9
です。 。
小数点以下の桁数は別のテンプレートパターンです。
D
を使用できたはずです 小数点の代わりに。実際のフォーマットには現在のロケールが使用されます。
SELECT
to_char(10, '99.99') AS "99.99",
to_char(10, '99D99') AS "99D99";
結果:
99.99 | 99D99 --------+-------- 10.00 | 10.00
テンプレートパターンと修飾子の完全なリストについては、Postgresの数値フォーマット用のテンプレートパターンと修飾子を参照してください。
テンプレートパターン修飾子
テンプレートパターンと一緒に使用できる修飾子もいくつかあります。これらは、使用される修飾子に応じて、出力のフォーマット方法を変更します。
具体的には、数値の書式設定で使用できる3つの修飾子があります。
修飾子 | 説明 |
---|---|
FM プレフィックス | 塗りつぶしモード(末尾のゼロとパディングブランクを抑制) |
TH 接尾辞 | 大文字の序数の接尾辞 |
th 接尾辞 | 小文字の序数接尾辞 |
最初のものはテンプレートパターンのプレフィックスとして追加され、他の2つはサフィックスとして追加されることに注意してください。
序数
一般的な要件は、数値を序数に変換することです。どちらのTH
も使用できます またはth
そのため、接尾辞を大文字にするか小文字にするかによって異なります。
これが例です。
SELECT to_char(03, 'FM99th');
結果:
3rd
この場合、FM
も使用しました 空白と末尾のゼロを抑制します。
FM
を使用した場合の比較は次のとおりです 省略します:
SELECT
to_char(03, '99th') AS "99th",
to_char(03, 'FM99th') AS "FM99th";
結果:
99th | FM99th -------+-------- 3rd | 3rd
よく見ると、最初の列には先頭の空白がありますが、2番目の列にはありません。
通貨
もう1つの一般的な要件は、特定の通貨で数値を出力することです。
この場合、L
を使用できます ロケール対応の通貨記号を表示するためのテンプレートパターン。
SELECT to_char(03, 'LFM99D00');
結果:
$3.00
署名された番号
署名された番号のテンプレートパターンもあります。
これが例です。
SELECT to_char(27, 'S99');
結果:
+27
ここでは、S
を使用しました 番号に固定されたロケール対応の記号を追加します。
この場合、それは正の数でした。負の値を使用する別の例を次に示します。
SELECT to_char(-27, 'S99');
結果:
-27
署名された番号に使用できる他のいくつかのテンプレートパターンがあります。
例については、Postgresの数値にプラス/マイナス記号を付加するを参照してください。
また、前述のように、数値をフォーマットするときに使用できるテンプレート修飾子の完全なリストについては、Postgresの数値フォーマット用のテンプレートパターンと修飾子を確認してください。
データ型
前述のように、to_char()
関数はその結果をテキストとして出力します 。
要件によっては、数値をより適切なデータ型に変換する方がよい場合があります。
数値をお金のデータに変換する例を次に示します。 タイプ。
SELECT cast(10 as money);
結果:
$10.00