web-dev-qa-db-ja.com

PostgreSQLでmoneyデータ型のフォーマットされていないデータを挿入することは可能ですか?

デフォルトでは、PostgreSQLのmoneyデータ型は、通貨コードとグループで値を挿入します。私はそれが常に$で値を挿入することを観察しました。

  1. ロケール固有の値を挿入するにはどうすればよいですか?
  2. 独自の桁グループおよび小数グループ形式で値を挿入するにはどうすればよいですか?
  3. フォーマットされていないデータを読み取るにはどうすればよいですか?
  4. PostgreSQLのmoneyデータ型がMS SQLのmoneyデータ型と異なるのはなぜですか?
5
Ramesh Bathini

notmoneyデータ型を使用することを強くお勧めします。

すべての問題は、moneyデータタイプの制限から生じます。

numeric()を使用する方がはるかに優れています。 different通貨の値を保存する必要がある場合は、とにかくonlyの選択です(保存する別の列が必要になります)その値の通貨)。


あなたの質問に答えるには:

ロケール固有の値を挿入するにはどうすればよいですか?

できません。 (少なくともpsqlでは)フォーマットは常にクライアントのロケールに基づいて行われます。

独自の桁グループおよび小数グループの形式で値を挿入するにはどうすればよいですか?

できません。数値(money列の数値を含む)は常に保存されますなしすべてのフォーマット。フォーマットはクライアントのロケールに基づいて行われます。必要な場合はnumericを使用し、アプリケーションまたは米国でフォーマットを適用してくださいto_char()

PostgreSQLのmoneyデータ型がMS-SQL moneyデータ型と異なるのはなぜですか?

「money」データ型には標準がないためです。

フォーマットされていないデータをどのように読み取ることができますか?

フォーマットはlibpqライブラリによって行われるため、これは簡単に可能ではないと思います。それを行うための低レベルのAPI呼び出しがあるかもしれませんが、SQLを介して間違いなくそうです。必要に応じて、numericを使用することをお勧めします。