我试图进一列馆从一个在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";
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top