Как отформатировать поле даты при импорте файла CSV в таблицу SQL Server с помощью BCP? - PullRequest
0 голосов
/ 23 сентября 2019

Я использую BCP и python для импорта файла .CSV в таблицу SQL Server.Файл .CSV содержит столбец, содержащий данные даты и времени, а в моей таблице также есть соответствующий столбец datetime2.Проблема в том, что дата в файле .CSV имеет формат:

2017-01-13T06:02:14Z

, что приводит к ошибке при выполнении команды BCP.Моя команда BCP выглядит следующим образом:

bcp mydb.dbo.mytable in {0} -R -e errorfile -c -S mysqlserver.com -U myuser -P 'mypassword'

и ошибка:

Недопустимое значение символа для спецификации приведения @ # 2017-01-13T06: 02: 14Z

Если я изменю дату в моем файле .CSV на «2017-01-13 12:33:49», BCP будет работать нормально.Ошибка в том, что инструмент BCP использует API массового копирования ODBC.Следовательно, для импорта значений даты в SQL Server bcp использует формат даты ODBC (гггг-мм-дд чч: мм: сс [.f ...]).

Как это исправить?проблема?

Есть ли способ изменить формат даты внутри самого файла CSV с 2017-01-13T06: 02: 14Z на гггг-мм-дд чч: мм: сс?

1 Ответ

1 голос
/ 24 сентября 2019

Один из вариантов будет импортировать в промежуточный стол как VARCHAR.Попав в промежуточную таблицу, вы можете выполнить прямое приведение к datetime2 и заполнить mytable

.
...