2016-11-07 156 views
0

我遇到问题,Excel中的“首选日期”格式不同,一旦导入到SQL Server中,一些将更改为NULL。所以我想在Excel中将格式统一为列F,如下所示。SQL Server:将Excel导入到SQL Server时,日期格式更改为nvchar

事情是甚至格式已经更改为EXCEL列F中的“日期”,此列在导入SQL SERVER后仍显示为“nvarchar”。

那么如何在SQL中更改列日期?

  • 我曾尝试使用SELECT DISTINCT CONVERT(VARCHAR(100), [Change to], 112)但由于代码有很多很多的日期范围标准在where子句中,这是不是很友好的使用如此多的条款转换为每个where子句中。

  • 我也尝试在导入时将nvarchar的格式更改为日期,但它报告错误。

2方法不起作用,所以我急于从你那里得到一些建议。 非常感谢您的帮助。

enter image description here

+0

如何准确地将Excel中的数据导入SQL Server? AFAICT问题不在SQL Server中,而是在您的导出/导入例程中? –

+0

@ TT。,我选择“EXCEL”作为数据源,并选择“SQL SERVER NATIVE CLIENT 11.0”作为目标文件 –

+0

您是否从SSMS执行此操作我假设?在这种情况下,您可能需要为该列设置正确的映射。请阅读[this](https://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/)了解如何做到这一点。 –

回答

1

您可以使用像这样的东西转换为datetime格式VARCHAR进口:

=year(e4) & "-" & right("0" & month(e4), 2) & "-" & right("0" & day(e4), 2) & "T00:00:00" 

这将确保它使用两位数字格式的月和日各一次。

您还可以使用:

=date(year(e4), month(e4), day(e4)) 

这将其转换为Excel日期格式。

+0

谢谢,它的工作原理 –