use*_*140 8 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')""")
Run Code Online (Sandbox Code Playgroud)
我没有任何问题,但是当我尝试做的时候:
currenttime = str(datetime.datetime.now())
cursor.execute("""insert into currentvalue(value1,currentdatetime)
values(55,"""+ currenttime+")")
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
SQL服务器'07'附近的语法不正确,我认为这是日期和开始时间之后的数字.
我也试过这个:
currenttime = "'"+str(datetime.datetime.now())+"'"
Run Code Online (Sandbox Code Playgroud)
现在出现这个错误:
从字符串转换日期和/或时间时转换失败.
Bry*_*yan 14
删除日期时间到字符串转换,而不是使用参数:
....
cursor.execute("insert into currentvalue (value1,currentdatetime) values(?,?)",
(value1, datetime.datetime.now()))
....
Run Code Online (Sandbox Code Playgroud)
小智 6
您还可以使用 datetime.strftime() 以您需要的方式将日期时间对象转换为字符串。str(datetime) 是个坏主意。
currenttime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
cursor.execute("""insert into currentvalue(value1,currentdatetime) values(55,"""+ currenttime+")")