SQL Server 2005 - > Excel导出不保留数据类型?

时间:2011-03-03 17:59:20

标签: sql sql-server sql-server-2005 excel

尝试(并且基本上成功)将查询结果从SQL Server导出到Excel,如下所示:

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=c:\exported excel files\exported_data.xls;',
    'SELECT * FROM [Query$]') SELECT dbo.blabbityblah FROM dbo.the_table

有效!有点。它确实将数据导出到excel文件,但它将所有内容都作为文本放在那里,即使其中一些列是datetime,而且大多数都是数字。它们都不是在查询本身中转换()。我已经尝试在运行查询之前预先格式化实际Excel文件中的单元格,但它忽略了现有的格式化并将其全部作为文本再次吐出。

必须有办法做到这一点,对吗?

3 个答案:

答案 0 :(得分:1)

excel没有数据类型,其基于文本和预格式化不起作用,因为它替换现有文件。如果你想要数据类型,请尝试MS Access。

答案 1 :(得分:0)

查看使用schema.ini文件来定义csv或txt中的数据类型。当您在excel中打开时,您可以实现您想要的目标

[sample_out.csv]
Format=CSVDelimited
DecimalSymbol=.
Col1=DATE datetime
Col2=FName Text

答案 2 :(得分:0)

您可能希望根据需要查看的另一种方法是使用导入和导出向导。您可以自定义数据查询并在向导中指定数据类型。如果您使用Express以外的SKU,您可以立即运行它或保存SSIS包以进行进一步操作。