SQL Server导入/导出数据向导与DTExec for Excel日期

时间:2016-12-20 16:09:36

标签: sql-server excel ssis dts

我尝试使用Visual Studio 2015中的最新SSDT作为SQL Server 2014项目/包创建Excel电子表格。我首先使用SQL Server导入/导出数据向导来运行和创建一个DTS包,该包发出一个简单的查询以从包含DATETIME列的SQL Server数据库表中检索数据并将其导出到Excel,并将DATETIME列保留为DATE在Excel中。

在向导期间运行DTS包正确创建了Excel文件,其列值为DATE。但是当我重新运行向导使用Visual Studio 2015(使用32位模式)或任何32位版本的DTExec实用程序保存到文件系统的DTS包时,始终使用列值创建Excel文件文本。 Excel工作表是使用' DateTime'创建的。 type和内部SSIS类型是DT_DBTIMESTAMP。我使用Microsoft.ACE.OLEDB.12.0 32位驱动程序,因为我在开发人员工作站上安装了Office 2016 32位(尽管可能会在生产服务器上使用64位版本)。

使用向导运行它与在Visual Studio中运行或使用DTExec时出现差异的原因有何想法?这让我发疯了!

或者有没有人有任何不同的方法来强制此列成为Excel中的DATE?

谢谢!

布赖恩

1 个答案:

答案 0 :(得分:1)

通过SSIS将date个记录导出到excel将始终被视为TEXT,除非您的Excel工作表中已有虚拟记录,然后在虚拟行之后立即导入该Excel。假设您将虚拟行设置为DATE格式