数据库骚操作之——唯float要避而远之

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

数据库骚操作之——唯float要避而远之

【概述】

最近经常需要将excel中的数据导入的数据库中,float这个数据类型让我没了脾气,遇到float还是避而远之的好。

当excel中某一列前面的行都满足数值的格式的时候,导入到sql server中时系统往往自动匹配到的是float类型,对于不能转换为float的值直接按空值处理了,如果您确定您的列不是数值,请务必修改单元格格式为文本。

如果您的列是数值,那么,建议您不要任由系统取float类型,特别是我们的财务数据,像金额字段我们都能确定它的精度(一般为两位),那么在导入execl时编辑映射界面,手动修改字段类型为decimal(23,10)就基本够用了。

【so why???】

原因一:

float转字符型时会丢失精度

select convert(nvarchar(255),convert(float,16918.11))

image.webp

原因二:

因为float是浮点型,它是一种不精确的数据表示方法,你查询出来显示的数据跟你实际保存在硬盘中的数据,可能有一个小数点后很多位的极小的差额。

比如下面这个等式,原值16918.11-累计折旧16072.2-净值845.91其实是等于零的,但是,在float类型下却是不相等的。

select 1 where convert(float,16918.11)-convert(float,16072.2)-convert(float,845.91)<>0

image.webp





数据库骚操作之——唯float要避而远之

【概述】最近经常需要将excel中的数据导入的数据库中,float这个数据类型让我没了脾气,遇到float还是避而远之的好。当excel中某一列前面的...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息