zoukankan      html  css  js  c++  java
  • decimal 和 numeric (Transact-SQL)

    本主题适用于:yesSQL Server(从 2008 开始)yesAzure SQL 数据仓库yesAzure SQL 数据仓库yes并行数据仓库

    带固定精度和小数位数的数值数据类型。 小数和数值是同义词,可以互换使用。

    decimal[ (p[ ,s] )] and numeric[ (p[ ,s] )]
    固定精度和小数位数。 使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。 The ISO synonyms for decimal are dec and dec(ps). 数值功能上等效于十进制。

    p(精度)
    最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。 该精度必须是从 1 到最大精度 38 之间的值。 默认精度为 18。

    System_CAPS_ICON_note.jpg 说明


    Informatica 仅支持 16 有效位,而不考虑精度和指定的小数位数。

    s (缩放)
    小数点右边可以存储的十进制数字的位数。 此数减去从p以确定最多的小数点左侧的位数。 小数点右边可以存储的十进制数字的最大位数。 小数位数必须介于 0 到p。 仅在指定精度后才可以指定小数位数。 默认小数位数为 0;therefore, 0 <=></=>s <= p. 最大存储大小基于精度而变化。

    精度存储字节数
    1 - 9 5
    10-19 9
    20-28 13
    29-38 17
    System_CAPS_ICON_note.jpg 说明


    Informatica (通过 SQL Server PDW Informatica 连接器连接) 仅支持 16 有效位,而不考虑精度和指定的小数位数。

    有关十进制和数值数据类型,SQL Server考虑每个精度和小数位数为不同的数据类型的特定组合。 例如, decimal(5,5)和decimal(5,0)被视为不同的数据类型。

    在Transact-SQL语句,自动转换为具有小数点的常数数值数据值,使用最小的精度和缩放必要。 例如,常量 12.345 转换为数值值,该值精度为 5,小数位数为 3。

    从转换十进制或数值到float或实际可能会导致某些丢失精度。 从转换int, smallint, tinyint, float,实际, money,或smallmoney为十进制或数值也会导致溢出。

    默认情况下,SQL Server使用时将转换到数值进行舍入十进制或数值具有较低的精度和小数位数的值。 但如果 SET ARITHABORT 选项为 ON,则发生溢出时,SQL Server 会产生错误。 若仅降低精度和小数位数,则不会产生错误。

    在将 float 值或实数值转换为 decimal 或 numeric 类型时,decimal 值不会超过 17 位小数。 任何小于 5E-18 的 float 值总是会转换为 0。

    下面的示例创建表使用十进制和数值数据类型。 值将插入每一列,并使用 SELECT 语句返回结果。

    CREATE TABLE dbo.MyTable  
    (  
      MyDecimalColumn decimal(5,2)  
     ,MyNumericColumn numeric(10,5)  
      
    );  
      
    GO  
    INSERT INTO dbo.MyTable VALUES (123, 12345.12);  
    GO  
    SELECT MyDecimalColumn, MyNumericColumn  
    FROM dbo.MyTable;  
    

    下面是结果集:

    MyDecimalColumn                         MyNumericColumn  
    --------------------------------------- ---------------------------------------  
    123.00                                  12345.12000  
      
    (1 row(s) affected)  
  • 相关阅读:
    docker使用以及dockerfile编写
    c++:空构造空析构的益处之一
    python os.path模块常用方法详解(转)
    enlarge your dataset
    解决镜像无法删除的问题multiple repositories
    Ubuntu 14.04 LTS 安装Docker(转)
    忘记root密码,怎么办
    [Unity3D]降低向Shader中传值的开销
    Shader预处理宏、内置状态变量、多版本编译等
    Unity Shader 常用函数列表
  • 原文地址:https://www.cnblogs.com/herizai/p/6565404.html
Copyright © 2011-2022 走看看