日期格式问题使用SSIS Excel到SQL服务器
-
20-08-2019 - |
题
我试图进一列馆从一个在Excel电子表格2003年成SQL服务器2005年使用SSIS.我在英国,因此希望的日期格式作日/月/年.
不幸的是,列在电子表格中包含混合物的日期储存作为串在日/月/年(以Excel'一般'的格式),以及日期,使用Excel的'新'格式化日/月/年(与区域英语(大不列颠及北爱尔兰联合王国)').
这仅仅是这样我也不能期望用户能够解决这事本身。
当寻求在电子表格,所有的日期,直观地显示正确的,即日/月/年.
我试图进口值到varchar列保持在一个表中的数据库。然后我运行存储的过程,复制这些价值纳入适当表格,其中包含一日期时间列。
问题是,这一日期是存储在电子表格和使用新格式获得进口作/月/日到SQL服务器和冰箱存储为串越来越进口作日/月/年.我IMEX=1在连接串。
具有日期,使用两种格式在同一varchar列显然引起一个问题,当我试图把它变成一个日期时间列,因此
SET DATEFORMAT MDY;
SET DATEFORMAT DMY;
是没有用的。
没有人知道为什么SSIS包会导入的似乎是正确的日期,在Excel电子表格成SQL服务器作/月/日?
反正是有力的SSIS包进口的日期日/月/年,将工作与这种组合的日期作为串和细胞的日期格式适用?
任何其他的想法?!
多谢了,
安东尼
解决方案
我认为你已经回答了自己的问题。进口的日期格式细胞被视为日期和其他人作为一串。可能你SQL server日设定为年/月/日,因此转换。
你为什么不尝试增加一个数据转换的步骤在你SSIS包和转换任何东西列入一个单一的格式datetime或串。然后我确信SQL服务器将处理所有这些相同的方式。
Raj
其他提示
什么工作对我来说是IMEX=1
添加到Excel的连接字符串。
因此,这将是这样的:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Folder1\Book1.xls;Extended Properties="EXCEL 8.0;HDR=YES;IMEX=1";
不隶属于 StackOverflow