Sql server DB2/AS400小数的SQL Server数据类型,具有字节长度和十进制长度

Sql server DB2/AS400小数的SQL Server数据类型,具有字节长度和十进制长度,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我必须将数据从AS400 DB2系统加载到SQL Server 2012。提取的数据是excel格式的,我需要从中加载到SQL Server。提及 在DB2/AS400中,我有以下十进制类型 字节长度=2,十进制长度=3,十进制位置=0 字节长度=3,十进制长度=5,十进制位置=2 字节长度=3,十进制长度=3,十进制位置=0 字节长度=3,十进制长度=5,十进制位置=4 字节长度=4,十进制长度=4,十进制位置=0 字节长度=4,十进制长度=6,十进制位置=3 字节长度=4,十进制长度=7,十

我必须将数据从AS400 DB2系统加载到SQL Server 2012。提取的数据是excel格式的,我需要从中加载到SQL Server。提及

在DB2/AS400中,我有以下十进制类型

  • 字节长度=2,十进制长度=3,十进制位置=0
  • 字节长度=3,十进制长度=5,十进制位置=2
  • 字节长度=3,十进制长度=3,十进制位置=0
  • 字节长度=3,十进制长度=5,十进制位置=4
  • 字节长度=4,十进制长度=4,十进制位置=0
  • 字节长度=4,十进制长度=6,十进制位置=3
  • 字节长度=4,十进制长度=7,十进制位置=4
  • 字节长度=5,十进制长度=5,十进制位置=0
  • 字节长度=5,十进制长度=9,十进制位置=4
  • 字节长度=6,十进制长度=11,十进制位置=0
  • 字节长度=6,十进制长度=11,十进制位置=2
  • 字节长度=6,十进制长度=11,十进制位置=4
  • 字节长度=6,十进制长度=11,十进制位置=5
  • 字节长度=7,十进制长度=13,十进制位置=4
  • 字节长度=7,十进制长度=7,十进制位置=2
  • 字节长度=9,十进制长度=9,十进制位置=4
  • 在SQL Server 2012中,每种类型对应的数据类型是什么


    选择这些数据类型的基本原理是什么?

    在SQL Server中,您不需要定义一个
    十进制数所占用的存储空间-SQL Server有固定的存储要求。因此,如果我将字节长度解释为存储大小要求,那么我认为我们必须忽略字节长度。至于其余部分,在SQL Server中,您声明为:

    其中,
    p
    是精度(数字所有部分的总位数),
    s
    是刻度(小数点右侧的位数)

    由于您展示的所有类型的“十进制长度”都比“Dec Pos”大,因此我假设这些概念直接映射到
    decimal
    s精度和比例


    所以类型1将是
    十进制(3,0)
    ,而数字16将是
    十进制(9,4)

    我们不能使用
    货币
    作为数据类型吗?注意:excel加载数据时,在SQL中加载为
    float
    Server@Lijo-你可以,但我不推荐。它就像一个
    十进制(19,4)
    ,只是它有一些奇怪的舍入规则。
    decimal (p ,s)