web-dev-qa-db-ja.com

Postgresqlの数値と小数は自動的に四捨五入されます

CREATE TABLE IF NOT EXISTS ttable (
    tcol decimal(9,7)
);
insert into ttable(tcol) values(17.4604786);

値は17.46として保存されます

10進数/数値型を使用しても同じです

使っています
x86_64-Apple-darwin16.7.0上のPostgreSQL 11.2、Apple LLVMバージョン8.1.0(clang-802.0.42)、64ビットでコンパイル

ツール
SQL Workbench/Jビルド124(2018-08-20 22:43)
Javaバージョン:1.8.0_211(64ビット)。

接続情報:
製品名:PostgreSQL
製品バージョン:11.2
製品情報:11.2
ドライバー名:PostgreSQL JDBCドライバー
ドライバークラス:org.postgresql.Driver
ドライバーバージョン:42.2.6
分離レベル:コミットされた読み取り
ワークベンチDBID:postgresql

4
Neo

これはSQL Workbenchのデフォルトの動作のようです。この記事をご覧ください。

SQL Workbenchで10進データ型の解像度またはスケールを変更するにはどうすればよいですか。

記事から引用:

通常、SQL Workbenchは10進データをフルスケールで表示しません。デフォルトのスケールは2です。設定によってスケールを変更できます。

ソリューション

  1. データの書式設定を開きます。 SQLWorkBench->設定->データのフォーマット

  2. 10進数の変更デフォルトは2です。この場合、11以上にする必要があります。

SQL Workbenchのマニュアルによると データのフォーマット

10進数

数値列に表示される最大桁数を定義します。これは数値の表示にのみ影響し、保存や検索には影響しません。内部的には、DBMSから返されたときにも保存されます。内部値を表示するには、マウスカーソルをセルの上に置きます。表示されるツールチップには、JDBCドライバーによって返された番号が含まれます。データをエクスポートまたはクリップボードにコピーする場合、実際の値が使用されます。

この値が0(ゼロ)に設定されている場合、値は可能な限り多くの桁で表示されます。

(太字は私のものです)

7
McNets