【问题标题】:How many digits can be stored for a number in SQL Server 2005?SQL Server 2005 中的一个数字可以存储多少位?
【发布时间】:2009-01-06 16:55:21
【问题描述】:

我有一个来自 Oracle 数据库的号码 47306832975095894070.85314746810624532。当我将它带入 SQL Server 时,它肯定不会显示那么多数字。它显示为 4.73068329750959E+19,该字段定义为 FLOAT。

我认为这可能包括所有有效数字,但有人问我是否可以完全按照 Oracle 的方式存储该数字。是否有另一种数据类型可以存储所有数字? SQL Server 2005 中是否有办法不以指数形式显示数字,而是显示存储的所有数字?

【问题讨论】:

    标签: sql-server-2005 oracle precision significant-digits


    【解决方案1】:

    使用十进制数据类型。 decimal(p,s) - p 是精度值,s 是比例值。

    【讨论】:

      【解决方案2】:

      使用 Decimal(38,17) 代替浮点数。这应该允许您以与 Oracle 中相同的精度存储数字。

      【讨论】:

        【解决方案3】:

        NUMBER(p, s) 与 Sql Server 上的 Oracle 数据类型等效的是 numeric(p, s) 数据类型。请注意,p(精度)和 s(比例)的默认值在两个平台上并不相同。

        在 Sql Server 上,float 表示一个完全不同的浮点数,approximate representation 的数字。在 Oracle 上,等效值为 BINARY_DOUBLE

        【讨论】:

          猜你喜欢
          • 2011-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-13
          • 1970-01-01
          • 1970-01-01
          • 2011-01-13
          相关资源
          最近更新 更多