数据库导出身份证数据错误分析

文章讲述了在数据库导出身份证数据时遇到的Excel识别问题,介绍了两种解决方案:一是增加非数字不可见字符,优点是简单但可能影响后续工作;二是使用Excel的获取外部数据功能设置文本格式,优点是数据不变但操作稍多,推荐后者。
摘要由CSDN通过智能技术生成

背景

我们都有从数据库中导出数据到表格的需求,但是在一些比较长的纯数字型字符串数据的时候,导出数据会遇到问题,总是被excel识别为一个比较大的数,从而转换为科学计数法并截断的问题。
导出身份证数据错误

原因

问题的原因其实和数据库、csv格式文件没有关系,原因在于:Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学计数法表示,还会只保留高15位,其他位都变0。

解决方案及优缺点

下面的方法不管是什么数据库以及数据库客户端工具,应该都是有效的,因为始终是在解决excel的问题,而不是在解决数据库的问题或者客户端工具的问题,当然如果你使用的sql客户端工具给你提供了这个问题的解决方案,那自然再好不过,就不用使用下面的方法曲线救国了。

增加非数字不可见字符

该方法的切入点在于excel自动将导出的内容识别为一个很长的整数,为使excel将其识别为一个字符串,在原来数字内容的前或后加上一个非数字字符,但是为了让数据看起来还是原来的数据,所以加上的是不可见字符,通常加制表符\t
添加的时机和方法,通过sql筛选数据的时候加入,或者是在导出选项中通常有一个分隔符的设置,正常一般设置为,,将其修改为\t,
该方法的优点就是简单快速,缺点就是表格的实际内容被修改,可能导致后续的匹配,以及对比等工作的潜在问题。

使用excel获取外部数据功能

该方法的切入点在于excel自动将导出的内容识别为一个很长的整数,为使excel将其识别为一个字符串,不让excel进行自动识别,而是手动的设置每一列的数据类型。使用excel的获取外部数据功能来指定每一列的数据类型。
功能位置
在这里插入图片描述
总体思路如下:

数据库----导出----->csv-----获取外部数据---->excel

将长数字的列设置为文本格式,这样excel就不会自动识别为数字,而是我们设置的文本类型数据。
该方法的优点就是数据内容没有任何变化,后续的匹配,以及对比等工作不容易出问题。缺点就是会多一点点操作。总体来说这个方法是比较好的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值