2014-06-27 37 views
6

kullanarak bir MS SQL tablosuna ekleniyor Pyodbc kullanarak bir MS SQL Server tablosuna datetime değeri eklemeye çalışıyorum. ben elle yaparsanız, gibi bir şey:datetime pyodbc

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

ben hiç bir sorunum yok ama yapmam çalıştığınızda:

SQL server Incorrect syntax near '07' which i think is the number after the date and starting the time.

:

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

bu hata var Ayrıca bunu denedim:

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

Conversion failed when converting date and/or time from character string.

+1

için [parametreler] (https://code.google.com/p/pyodbc/wiki/GettingStarted#Parameters). – Bryan

cevap

8

parametreleri dize dönüştürme datetime çıkarın ve yerine kullanın::ve şimdi bu hata gelir

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

teşekkürler teşekkürler o işe yaradı! – user3784140

1

da kullanabilirsiniz datetime.strftime() içinde dizeye datetime nesnesi dönüştürmek için İhtiyacın olan yol. str (datetime) kötü bir fikirdir.

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

+0

Bence çözümünüz işe yaramıyor ve aynı soruya ilk denemede deniyor. En azından bir dize kaçışına ihtiyacın var. –