BCP IN错误= [Microsoft] [SQL Server Native Client 10.0]日期格式无效

时间:2013-03-14 09:07:45

标签: sql-server-2008-r2

我试图通过执行批处理文件通过BCP-IN在表中插入一些值。但是面临这个问题 -

Starting copy...
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22005, NativeError = 0

插入数据的文件是这样的 -

Marcus, Tom 371332  11-1-09 0:00    720.04  25.2    108.01  0   43.2    

插入数据的表格中包含coloumn -

EFFECT_DATE2] [datetime2](3) NULL,

有任何建议如何避免此错误?

2 个答案:

答案 0 :(得分:0)

您可能需要检查目标数据库的默认语言设置,因为它用于解释日期,即DATEFORMAT。

解决方案是将日期重新格式化为数据文件中的ISO标准格式(YYYYMMDD)。

备选方案可以重新格式化日期以匹配目标数据库的DATEFORMAT,也可以通过更改数据库的默认语言设置来更改DATEFORMAT。

请参阅https://support.microsoft.com/en-us/kb/173907

如KB中所述,在控制面板中更改服务器的区域设置不会更改Sql Server解释日期的方式。

答案 1 :(得分:0)

尝试在格式文件中使用SQLCHAR而不是SQLDATETIME。将datetime字段中的数据设置为本地格式,并使用-R键运行bcp.exe。