4

重複の可能性:
通貨に最適なデータ型

データベース内に製品価格を格納するテーブルがあります。列タイプはに設定されDECIMAL(12, 2)ます。ただし、次の価格を追加する1,199.00と、保存すると、何らかの理由で1.00に変換されます。

または、のような価格を追加する12,000.00と、12に変換されます。他のタイプのフィールドを使用して使用するか、他の値を追加する必要がありますDECIMALか?

4

2 に答える 2

8

のドキュメントにDECIMALよると、その列タイプは正常に機能するはずです。MySQL とのインターフェイスに別の言語 (PHP など) を使用している場合は、そのコードを SQL コードと共に投稿する必要があります。プレーン SQL では、指定した動作を再現できないためです。これは私が使用したサンプルです:

CREATE TABLE money (
    amount DECIMAL(12, 2));

INSERT INTO `money` (`amount`) VALUES (12999.00);

INSERT INTO `money` (`amount`) VALUES (12,999.00);

INSERT2 番目のステートメントは12,999.00、2 つの分離された列に宛てられた 2 つの別個の値として認識されるため、これはエラーで失敗するはずです。列が 1 つしか表示されていないため ( amount)、失敗します。エラーをどのように再現したかについては、このフィドルを参照してください。

于 2012-07-16T13:57:16.123 に答える
2

あなたのデータ型 DECIMAL(12,2) は問題ないようです。

12,999.00 ではなく、12999.00 を挿入する必要があります。

于 2012-07-16T13:41:04.230 に答える