使用pyodbc将日期时间插入MS SQL表

时间:2014-06-27 17:57:19

标签: python sql-server pyodbc mssql-jdbc

我正在尝试使用pyodbc将日期时间值插入到MS SQL Server表中。 如果我手动执行,例如:

cursor.execute("""insert into currentvalue(value1,currentdatetime)
                                    values(55,'2014-06-27 16:42:48.533')""")

我完全没有问题,但是当我尝试做的时候:

currenttime = str(datetime.datetime.now())
cursor.execute("""insert into currentvalue(value1,currentdatetime) 
                                    values(55,"""+ currenttime+")")

我收到了这个错误:

  

SQL服务器'07'附近的语法不正确,我认为这是日期和开始时间之后的数字。

我也尝试过这个:

currenttime = "'"+str(datetime.datetime.now())+"'"

现在出现此错误:

  

从字符串转换日期和/或时间时转换失败。

2 个答案:

答案 0 :(得分:11)

删除日期时间到字符串转换,而不是使用参数:

....
cursor.execute("insert into currentvalue (value1,currentdatetime) values(?,?)",
               (value1, datetime.datetime.now()))
....

答案 1 :(得分:3)

您还可以使用datetime.strftime()以您需要的方式将datetime对象转换为字符串。 str(datetime)是个坏主意。

currenttime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") cursor.execute("""insert into currentvalue(value1,currentdatetime) values(55,"""+ currenttime+")")