1

我正在尝试通过执行批处理文件通过 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,

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

4

2 回答 2

0

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

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

替代方法是重新格式化日期以匹配目标数据库的 DATEFORMAT,或者通过更改数据库的默认语言设置来更改 DATEFORMAT。

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

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

于 2015-06-08T20:00:41.070 回答
0

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

于 2016-08-03T12:55:01.167 回答