Sql server 无法在sql表中插入日期

Sql server 无法在sql表中插入日期,sql-server,Sql Server,使用PythonPyODBC,我试图在表中插入日期和时间,但是 " 从字符串转换日期和/或时间时('22007',u'[22007][Microsoft][ODBC驱动程序17 for SQL Server][SQL Server]转换失败。(241)(SQLExecDirectW)' " 插入查询: cursor.executemany("""INSERT INTO DM (SI, DK, Total, CR, CCM, SDate, EDate) VALUES (?, ?, ?, ?,

使用PythonPyODBC,我试图在表中插入日期和时间,但是

" 从字符串转换日期和/或时间时('22007',u'[22007][Microsoft][ODBC驱动程序17 for 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)

这些格式无效,无法自动转换为datetime

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

希望这能对您有所帮助。

这是一个
datetime
专栏?什么版本的SQL Server?您是否尝试只使用三位小数,例如
20190201 01:14:54.862
…我很确定日期“2019-02-01T01:14:54.862”中需要分隔符才能使用ISO日期格式。