2014-10-08 167 views
0

我有以下Excel工作簿:导入从Excel到SQL Server:varchar数据类型的转换为datetime数据类型导致超出范围的值

https://meocloud.pt/link/7cb3ef48-7556-4d36-ab9a-c247d3f7b29d/FichasTeste.xls/

它格式化被导入到SQL数据库。该服务器的详细信息如下:

SQL Properties

正如你所看到的映射是在进口商 Mapping

正确的,当我尝试导入Excel文件后,状态始终是相同的,没有重要的是我对日期的列做了修改。

242:将varchar数据类型转换为日期时间数据类型导致超出范围的值。

3621:声明已终止。

我应该修改什么,以便可以导入这些行而不会出现该错误?

回答

0

Excel将日期存储为整数,如果将excel字段更改为TEXT您会看到,但我不确定为什么遇到此问题,您应该能够直接从Excel导入,并有日期至少你可以使用SQL的导入向导以及SSIS。

一个解决办法是使用Excel中的TEXT()功能让你的约会变成一个可以接受的格式:

=TEXT(F2,"yyyy-mm-dd") 

我喜欢用OPENROWSET()从Excel导入,但是这需要一些额外的设置,并有它自身的缺点:

SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\YourExcelFile.xls', [Sheet1$]) 
+0

不幸地使用TEXT()没有帮助。使用分析器,我发现日期总是以“1/1/2013”​​而不是该格式为例。 – 2014-10-09 09:03:03

相关问题