../../image/benilogo.gifPostgreSQL について


PostgreSQL のfield type money 型について。
money 型

  マニュアルには使わないでと 書いてある。 マニュアル

使うと どうなるのかな?。
money 型の Field の作成
beniya=# create table mny ( mm money);
CREATE
beniya=# select \d mny;
        Table "mny"
 Column | Type  | Modifiers
--------+-------+-----------
 mm     | money |


   こんなふうに money 型のテーブル構造を作成する。。


さて 適当に数値を 入力してみると
beniya=# insert into mny values( '$12,345');
INSERT 22131 1
beniya=# insert into mny values( '345');
INSERT 22132 1
beniya=# select * from mny;
     mm
------------
 $12,345.00
    $345.00
(2 rows)

beniya=# insert into mny values( '\678');
INSERT 22133 1
beniya=# select * from mny;
     mm
------------
 $12,345.00
    $345.00
     $78.00
(3 rows)
beniya=# insert into mny values( 123456 );
ERROR:  column "mm" is of type 'money' but expression is of type 'integer'
        You will need to rewrite or cast the expression
b
   


  '$12,345' だと OK
    '345' でも OK
    '\678 これは バックスラッシュに 678 
       78 として入っている。 入力したのは\678 で
    678円のつもりだけど $78.00 となっている。 












  これは そのまま 123456 では integer と
  見られるようです。
 



しかし表示が $ になってしまうようです。
表示
beniya=# select * from mny;
     mm
------------
 $12,345.00
    $345.00
     $78.00
(3 rows)

   


  $ になってしまうようですね。






これ 他からみると どんなふうになっているのだろうか?
MS-ACCESS から ODBC 経由でみると
image/type_money_acc.gif   こんなふうになっている。
image/type_money_acc_field.gif
  • データー型は 倍精度浮動小数点型になっている。

同じく ODBC 接続 で Delphi から見ると、 mm  の構造は
image/type_money.gif
  • FLOAT 型として認識しているようです。


ということなので、この Money型 を使う意味はあまりない。 マニュアルに書いてあるように 使わないほうがいい。





















目次に戻る

2004/12/18 restart ********* Last Update 2006/05/30 14:36 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから