11

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())+"'"

そして今、このエラーが発生します:

文字列から日時を変換する際に変換に失敗しました。

4

2 に答える 2

17

日時から文字列への変換を削除し、代わりにパラメーターを使用します。

....
cursor.execute("insert into currentvalue (value1,currentdatetime) values(?,?)",
               (value1, datetime.datetime.now()))
....
于 2014-06-27T18:14:57.783 に答える
7

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

于 2015-01-30T13:39:04.603 に答える