невозможно вставить дату в таблицу sql - PullRequest
0 голосов
/ 17 марта 2019

используя python pyodbc Я пытаюсь вставить дату и время в таблицу, но получаю

» ('22007', u '[22007] [Microsoft] [Драйвер ODBC 17 для SQL Server] [SQL Server] Не удалось выполнить преобразование при преобразовании даты и / или времени из символьной строки. (241) (SQLExecDirectW)') «

Вставить запрос:

 cursor.executemany("""INSERT INTO DM (SI, DK, Total, CR, CCM, SDate, EDate)
  VALUES (?, ?, ?, ?, ?, ?, convert(datetime, ?, 121))""",dms)

пробовал следующие форматы для вставки даты и времени:

20190201 01:14:54.862963
20190201T01:14:54.862963

Обратите внимание, что при вставке с одной датой, которая является 20190201, я смог вставить, но только с датой и временем, когда возникла проблема Устал следующий запрос тоже. с помощью этого запроса можно вставить дату

cursor.executemany("""INSERT INTO DM (SI, DK, Total, CR, CCM, SDate, EDate)
  VALUES (?, ?, ?, ?, ?, ?,?)""",dms)

1 Ответ

1 голос
/ 17 марта 2019

Эти форматы недопустимы и не могут быть автоматически преобразованы в дату / время.

20190201 01: 14: 54.862963

20190201T01: 14: 54.862963

Вы можете вставить следующееформат:

insert into test values (1,2,convert(datetime,'20190201 01:14:54.862',121))

В противном случае, если ваши данные представлены в представленном формате, вы можете выполнить следующий обходной путь, удалив последние 3 цифры.

insert into test values (1,2,convert(datetime,substring('20190201 01:14:54.862963',1,len('20190201 01:14:54.862963')-3),121))

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...