Sql server 2008 日期值为的Excel单元格未通过SSIS正确导入
我有一个Excel'97电子表格,它是由一个外部自动流程生成的,我想通过SSIS将其导入SQL[2008 R2]表。我要导入的列在某些单元格中包含文本值,在其他单元格中包含日期值。要连接到Excel数据,我有一个“Excel源”数据流源,其中OpenRowset属性已设置为特定列范围:Sheet1$A1:A100。我在Excel源代码之后直接添加了一个网格数据查看器,以便查看“原始”结果 执行包时,我查看Data Viewer结果,所有包含日期的单元格都作为空值显示。奇怪的是,文本字段和数字字段很好地显示在Data Viewer中。如果我在日期值前面加上一个引号(撇号),以便它将日期视为文本,它将正确导入。如果我右键单击Excel中的一个日期字段并转到“设置单元格格式…”,它们都显示为“日期” 这些Excel文件是由一个我无法控制的过程自动生成的,我无法手动编辑每个文件以使其正确导入。在Excel源代码的外部列部分中,该列显示的数据类型为“Unicode字符串[DT_WSTR]”,因此我认为它只会将其作为文本导入Sql server 2008 日期值为的Excel单元格未通过SSIS正确导入,sql-server-2008,excel,ssis,Sql Server 2008,Excel,Ssis,我有一个Excel'97电子表格,它是由一个外部自动流程生成的,我想通过SSIS将其导入SQL[2008 R2]表。我要导入的列在某些单元格中包含文本值,在其他单元格中包含日期值。要连接到Excel数据,我有一个“Excel源”数据流源,其中OpenRowset属性已设置为特定列范围:Sheet1$A1:A100。我在Excel源代码之后直接添加了一个网格数据查看器,以便查看“原始”结果 执行包时,我查看Data Viewer结果,所有包含日期的单元格都作为空值显示。奇怪的是,文本字段和数字字段
如果您能就如何正确导入这些日期值提出建议,我将不胜感激。提前谢谢你 我不知道在SSIS中是否有“好”的方法来处理这种情况,但我可以想出一些或多或少丑陋的想法。为了增加黑客性:
我认为#1是最好的长期解决方案,但听起来不会很快实现。这就是说,将电子表格保存为文本至少会使它成为SSIS可以轻松处理的内容,这可能足以克服当前的障碍。您说您的列混合了文本和日期值,并且该列将作为“字符串”导入。由于日期在Excel中以数值形式存储(并且仅显示为文本),这可能就是为什么您的日期显示为空。一个好的开始是至少使列数据类型保持一致。听起来问题在于创建excel文档的任何进程。这些值的格式是什么?复制并粘贴该过程为您提供的值的示例,以便我们了解如何将其写入excel文件。首先,感谢所有的宝贵意见和建议。最后,我发现了一篇文章,详细介绍了如何查看前8个字符来确定数据类型。为了解决这个问题,我在连接字符串的末尾添加了“IMEX=1”文本-请参阅。一旦我这样做了,它就正确地导入了日期字段。同样,我无法从我的客户处更改此Excel文档的格式,因此我必须以这种方式处理它。再次感谢!不客气-感谢您提供指向IMEX=1提示的指针!