デフォルトでは、PostgreSQLのmoney
データ型は、通貨コードとグループで値を挿入します。私はそれが常に$
で値を挿入することを観察しました。
notmoney
データ型を使用することを強くお勧めします。
すべての問題は、moneyデータタイプの制限から生じます。
numeric()
を使用する方がはるかに優れています。 different通貨の値を保存する必要がある場合は、とにかくonlyの選択です(保存する別の列が必要になります)その値の通貨)。
あなたの質問に答えるには:
ロケール固有の値を挿入するにはどうすればよいですか?
できません。 (少なくともpsqlでは)フォーマットは常にクライアントのロケールに基づいて行われます。
独自の桁グループおよび小数グループの形式で値を挿入するにはどうすればよいですか?
できません。数値(money
列の数値を含む)は常に保存されますなしすべてのフォーマット。フォーマットはクライアントのロケールに基づいて行われます。必要な場合はnumeric
を使用し、アプリケーションまたは米国でフォーマットを適用してくださいto_char()
PostgreSQLのmoneyデータ型がMS-SQL moneyデータ型と異なるのはなぜですか?
「money」データ型には標準がないためです。
フォーマットされていないデータをどのように読み取ることができますか?
フォーマットはlibpqライブラリによって行われるため、これは簡単に可能ではないと思います。それを行うための低レベルのAPI呼び出しがあるかもしれませんが、SQLを介して間違いなくそうです。必要に応じて、numeric
を使用することをお勧めします。