Excel导入Sql Server时间格式总是变成NULL,手动导入时就有这个问题,请问应该如何处理
我手动导入时有这个问题,在Excel中格式是时间的,数据“2007年”就可以成功导入,“2007年7月”就无法导入,导入后变成空值。
刚才查了一下帖子,说要处理Excel中的格式,我格式无论是改成任何样子的时间格式还是改成纯文本,都不能导入啊,把SQL Server中的相应字段格式无论改成datetime还是smalldatetime还是varchar也都不可。
请问各位大侠,应该怎么处理。
请问怎么解决这个手动导入的问题啊!
------解决方案--------------------在excel中把'2007年7月'改为'2007-07-01'
------解决方案--------------------在excel中把纯数字的数据前面加'
再导入肯定不会有这个问题
------解决方案--------------------加入imex=1附加屬性
------解决方案--------------------改成纯文本,都不能导入啊?
绝对不可能.
------解决方案--------------------1. 將數字和日期欄位選中,用資料剖析的方式,改為文字型。
2. 在附件屬性里,加入imex=1
------解决方案--------------------加了那个也没有多大用,我也遇到过这个问题
始终很郁闷,需要改注册表
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]
"TypeGuessRows"
这个值表示决定取多少行的数据来确定该列的数据是数字还是字符,字符行多就是字符,数字多就是数字
我后来改成1,在把第一行数据前面全部加',好像就没有出现问题了
很郁闷
------解决方案--------------------没有你说的现象,我导入正常
以下是excel2003中的数据:
2007年 2007年7月
2006年 2006年6月
2003年 2003年3月
sql中建表,a varchar(50),b varchar(50)
导入结果
2006年 6/1/2006
2003年 3/1/2003
------解决方案--------------------2003年在EXCEL中文本格式为常规,2003年3月 EXCEL中文本格式为自定义中的yyyy"年"m"月",这样导入后的结果为
2003年 3/1/2003
------解决方案--------------------我也遇到过一个问题,就是将时间2007-12-12 12:12:12.012到入Execl后就变成了2007-12-12,后面的12:12:12.012不会显示出来,但是后面的12:12:12.012并没有被截掉,如果把鼠标定位到该单元框,在Excel的菜单栏下面的公用输入框里却可以看到全部的2007-12-12 12:12:12.012,这是什么原因类?
------解决方案--------------------当初我也遇见这个问题了,而且是一部分可以导入,一部分不可以,具体的解决方案如下:
(1)将导入时不能显示的数据在EXCEL中剪切出来,重新作为一张EXCEL表,然后将原表中剩下的数据导入已经建立好的Table中。
(2)在数据库中重新建立一张表,这张表中,开始不能导入的数据字段选择和第一张创建的表不一样而且符合EXCEL表中数据格式的数据类型,然后导入刚才剪切出来的数据,一般会成功。
(3)利用SQL语句将第二张表的数据插入到第一张表中,而最开始不能导入的字段此时要用CAST数据类型转换,以将第二张表的数据转换为和第一张表一致的数据类型。
最后,我查找了以下原因,造成这种情况的主要原因有三点:
(1)EXCEL 表中的字段数据类型和定义表中的字段数据类型不符
(2)数据长度不够
(3)数据表中同一列的数据具有不同的数据类型
------解决方案----------------------建立job就可以。
--欄位一一對應.
insert into T(xx,ss,xx...)
select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source=''d:\test.xls'';User ID=Admin;Password=;Extended properties=''Excel 5.0;imex=1''')...[sheet1$]
------解决方案-------------------- 其实如果想彻底解决这个问题,也不是没有办法,但是这个办法的前提就是传表的一方配合修改。你所要导入的数据应该不是来自同一个数据库的同一个表吧,你可以建议传表方将数据来源表的数据结构修改为一致,这样的话再导入的时候应该不会再有什么问题。至于在自己方做到一劳永逸的修改,我也没有什么好办法,看看楼下的各位吧!