Excel没有正确读取sql导出的csv

时间:2012-12-11 23:01:48

标签: sql datetime csv sqlcmd

我有一个批处理文件,它调用sqlcmd来运行命令,然后将数据导出为csv。在单元格中查看,例如,被转移的日期显示为35:30.0,但如果您点击它,则公式栏会显示1/1/1900 2:45:00 PM。我需要在单元格中显示完整的时间戳。有什么想法吗?

批处理文件如下

sqlcmd -S server -U username -P password -d database -i "D:\path\sqlScript.sql"  -s "," > D:\path\report.csv -I -W -k 1

脚本如下。现在我现在把它们作为varchars,但那只是因为我试图改变它。 Varchar也不起作用。

SET NOCOUNT ON;

select top(10)BO.Status,
cast(tradeDate AS varchar) AS Trade_Date,
CAST(closingTime AS varchar) AS Closing_Time,
CAST(openingTime AS varchar) AS openingTime

来自所有表格的巨大复杂联接

3 个答案:

答案 0 :(得分:1)

您可以在日期字符串之前或之后添加Excel无法识别的任何字符作为字段分隔符(我使用冒号),并且在打开文件或将文件导入Excel时将保留该字符串。

或者,您可以按原样进行导入,只需在Excel中为日期单元格设置自定义格式:“m / d / yyyy hh:mm:ss A / P”应该完成工作。< / p>

答案 1 :(得分:0)

这不是一个excel格式化问题吗?有什么方法可以确切地检查SQL返回的内容?您在导入向导对话框中为日期列的单元格格式选择了什么? (如果您只是直接在Excel中打开CSV,请尝试使用“文本数据”导入)

答案 2 :(得分:0)

也许csv2odf可行。它有一个-d选项,允许您指定csv文件中日期的格式。它还使用模板(xlsx),您可以格式化日期在Excel中的显示方式。