无法在SQL表中插入日期

时间:2019-03-17 01:31:46

标签: sql-server

使用python pyodbc,我试图在表中插入日期和时间,但得到

” ('22007',u'[22007] [Microsoft] [SQL Server的ODBC驱动程序17] [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 个答案:

答案 0 :(得分:1)

这些格式无效,无法自动转换为日期时间。

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))

希望这会对您有所帮助。