pyodbc

2014-06-27 10 views
6

का उपयोग कर एक एमएस एसक्यूएल तालिका में डेटाटाइम डालना मैं pyodbc का उपयोग कर एक एमएस एसक्यूएल सर्वर तालिका में डेटाटाइम मान डालने का प्रयास कर रहा हूं। अगर मैं इसे मैन्युअल रूप से करते हैं, कुछ की तरह:pyodbc

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

मुझे कोई समस्या नहीं सब पर है, लेकिन जब मैं करने की कोशिश:

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

इसके अलावा मैंने यह कोशिश की:

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

और अब इस त्रुटि आता है:

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

+1

उपयोग [मापदंडों] (https://code.google.com/p/pyodbc/wiki/GettingStarted#Parameters)। – Bryan

उत्तर

8

स्ट्रिंग रूपांतरण के लिए दिनांक निकालें और इसके बजाय पैरामीटर का उपयोग:

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

धन्यवाद यह काम करता है! – user3784140

1

तुम भी उपयोग कर सकते हैं datetime.strftime() में स्ट्रिंग के लिए datetime वस्तु कन्वर्ट करने के लिए जिस तरह से आपको चाहिए str (डेटाटाइम) बुरा विचार है।

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

+0

मुझे लगता है कि आपका समाधान काम नहीं करता है और यह प्रश्नकर्ता के पहले प्रयास की तरह है। आपको कम से कम एक स्ट्रिंग से बचने की ज़रूरत है। –

संबंधित मुद्दे