【问题标题】:BCP data import, invalid time format errorBCP数据导入,无效时间格式错误
【发布时间】:2016-04-14 09:44:44
【问题描述】:

我未能将文本文件的数据加载到我的数据库表中,并出现持续错误

时间格式无效。

我已更改时间格式以在日期和时间之间包含一个 T,但无济于事。我还替换了年、月、日分隔符。到 - 但错误仍然存​​在。

这就是我尝试从 txt 文件加载的方式

bcp mydb.dbo.mytable in c:\data.txt -T -S myserver\instance

然后我继续确认字段的数据类型,前缀长度(这是字段之前的分隔符的长度......对吗?)和字段终止符。我创建了一个格式文件,使用时仍然会产生相同的错误。我要导入的日期时间字段是典型行中的其他四个字段之一。

我错过了什么?

编辑

这是一个典型的行

14,1999-01-04T08:08:24.000,1.36000,1.36000

我在使用 SSIS 时也失败了,我之前的第一次使用访问的解决方法在这里不适用。它是 bcp 或 SSIS

【问题讨论】:

  • 请包含一些数据样本。
  • 你错过了什么?不知道......但我可以告诉你我错过了什么:样本数据,你的“典型行”的一些行。还有一个提示:尝试使用仅包含前几行的文件来声明您的语句。可能是某个地方的某个日期不好,而不是格式本身。另一个提示:大多数问题发生在不同的月日顺序上。 2016-04-01 会起作用,但可能会产生意想不到的结果,2016-13-04 不会起作用...
  • 通过 SSIS 让它工作...猜 bcp 是一个古董 ;-)

标签: sql-server datetime bcp bulk-import


【解决方案1】:

我相信您使用的是SQL Server 2008 (R2)?如果是这样,请在您的问题中添加适当的标签。

此问题已在 dba.stackexchange 报告 here

给出了以下提示:

  • 您需要使用生成的格式文件并使用-f 进行导入和导出。
  • 确保您的日期时间格式类似于 yyyy-mm-dd hh:mm:ss,因此在日期和时间之间使用空格而不是 T

请注意,我读到 here 声称这是 BCP 中的一个错误,随 SQL Server 2008 (R2) 一起提供。显然,这已在 SQL Server 2012+ 中解决。

【讨论】:

  • 您好,使用的是 SQL 2014...不得不先将 txt 文件导入访问,然后将 accdb 文件导出到 SQL
猜你喜欢
  • 2011-06-19
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
相关资源
最近更新 更多