我把Excel里面的数据导入到数据库,有这种情况
在Excel表中是这个数字:1535603.28
导入到s数据库中却是这个数字:1535603.00
左边的是Excel表格里面的数据,右边的是数据库里面的数据,为什么会有中间的差额0.28我数据库里面的字段类型是numeric(18,2)
有谁能讲讲numeric类型,我查看表结构是Leng都是9,然后Prec才是18,还有Scale是2,有谁能讲讲numeric类型??
在Excel表中是这个数字:1535603.28
导入到s数据库中却是这个数字:1535603.00
左边的是Excel表格里面的数据,右边的是数据库里面的数据,为什么会有中间的差额0.28我数据库里面的字段类型是numeric(18,2)
有谁能讲讲numeric类型,我查看表结构是Leng都是9,然后Prec才是18,还有Scale是2,有谁能讲讲numeric类型??
insert into @t
SELECT col1
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]
select * from @t
/*
id
--------------------
1535603.28(所影响的行数为 1 行)
*/
还有好几个呢,
前面是在Excel里面的,后面是导入到数据库里面的:
1535603.28 1535603.00
1725511.87 1725512.00
2132165.72 2132166.00
2766106.89 2766107.00
如果说是四舍五入的情况,那么下面这两个又怎么解释呢?
398505.24 398505.30
434014.74 434014.80
你看一下这个。导入的时候要把数据类型改一下。numeric(18,2)
然后注意你的excel文档里面该数据列里面有什么特殊字符没有,比如说表格左上角有没有个绿色小三角
numeric(18,2)
或者直接float类型也行。
刚一测试,并没有出现小数点后面00的状况。
你最好查看一下你的数据有没有问题!
要不然万一小数点后面有三位或四位小数,那么就不会四舍五入了