我正在尝试使用 SSIS 将 Excel 2003 中的电子表格中的一列日期导入 SQL Server 2005。我在英国,所以希望日期格式为 dd/MM/yyyy。
不幸的是,电子表格中的列包含以 dd/MM/yyyy 格式存储为字符串的日期(使用 Excel 'General' 格式)以及使用 Excel 'Date' 格式 dd/MM/yyyy 格式的日期(使用区域设置'English (英国)')。
事情就是这样,我不能指望用户能够自己解决这个问题。
查看电子表格时,所有日期在视觉上看起来都是正确的,即 dd/MM/yyyy。
我正在尝试将值导入数据库中保存表中的 varchar 列。然后我运行一个存储过程,将这些值复制到包含日期时间列的正确表中。
问题是存储在电子表格中并使用日期格式的日期作为 MM/dd/yyyy 导入 SQL Server,而存储为字符串的日期则作为 dd/MM/yyyy 导入。我在连接字符串中有 IMEX=1 。
在同一 varchar 列中使用两种格式的日期显然会在我尝试将其放入 datetime 列时导致问题,因此
SET DATEFORMAT MDY;
SET DATEFORMAT DMY;
没用。
有谁知道为什么 SSIS 包会将 Excel 电子表格中看似正确的日期作为 MM/dd/yyyy 导入 SQL Server?
是否有强制 SSIS 包将日期导入为 dd/MM/yyyy 的日期,这将与这种日期组合作为字符串和应用了日期格式的单元格一起使用?
还有其他想法吗?!
非常感谢,
安东尼