Sql server Postgres浮点值是否等同于sql server浮点值

Sql server Postgres浮点值是否等同于sql server浮点值,sql-server,postgresql,Sql Server,Postgresql,我正在将SQLServerDB转换为PostgreSQL,我看到一些列在sqlserver中声明为Float。我正要在PostgreSQL中声明该列浮点,但我想知道这种转换是否足够好。在PostgreSQL中声明FLOAT(20)是否更好?或者仅仅浮点就足够了?两个DBMS都将没有精度参数的浮点解释为FLOAT(53)(全精度双精度浮点)。精度值为24或更小可能会将内部表示形式更改为单个精度浮点,如果您有一个float(20),这似乎就是您的情况 在Postgres和MS SQL中,数据库只在内

我正在将SQLServerDB转换为PostgreSQL,我看到一些列在sqlserver中声明为Float。我正要在PostgreSQL中声明该列浮点,但我想知道这种转换是否足够好。在PostgreSQL中声明FLOAT(20)是否更好?或者仅仅浮点就足够了?

两个DBMS都将没有精度参数的浮点解释为
FLOAT(53)
(全精度双精度浮点)。精度值为24或更小可能会将内部表示形式更改为单个精度浮点,如果您有一个
float(20)
,这似乎就是您的情况

在Postgres和MS SQL中,数据库只在内部使用
REAL
(32位)或
双精度
(64位)类型的列。precision参数仅确保浮点的尾数具有特定的最大精度(更长的尾数会被截断)

FLOAT(20)
在两个DBMS上都是等效的,
FLOAT
将为您提供额外的33位精度,您可能需要也可能不需要
FLOAT
/
REAL
/
双精度
列在SQL中非常少见,很难,大多数人会使用数字来代替,Postgres文档实际上指出了这一点。不过,考虑到这是一次迁移,您可能希望对此保持保守