我试图通过执行批处理文件通过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,
有任何建议如何避免此错误?
答案 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。