2013-05-14 106 views
0

我在Python 2.4的代碼:SQLite和蟒蛇時間戳

import datetime, time, sqlite 
def metodo(date): 
     conn = sqlite.connect('dataBase.db') 
     c = conn.cursor() 
     c.execute("INSERT INTO f values(?,?)", (3,date)) 
     conn.commit() 
     conn.close() 

end_date=datetime.datetime(2012, 10, 21, 0, 0) 
print end_date 

metodo(end_date) 

與int和TIMESTAMP

create table f(id int, time TIMESTAMP) 

SQLite數據庫,但我得到這個在python:

Traceback (most recent call last): 
File "prueba.py", line 13, in ? 
metodo(end_date) 
File "prueba.py", line 6, in metodo 
c.execute("INSERT INTO f values(?,?)", (3,date)) 
File "/usr/lib/python2.4/site-packages/sqlite/main.py", line 255, in execute 
self.rs = self.con.db.execute(SQL % parms) 
TypeError: not all arguments converted during string formatting 

此代碼運行良好。問題是與時間戳:

import datetime, time, sqlite 
def metodo(date): 
     conn = sqlite.connect('dataBase.db') 
     c = conn.cursor() 
     c.execute("INSERT INTO a values(%s)", date) 
     conn.commit() 
     conn.close() 


metodo("stringTest") 

與int和TIMESTAMP

create table a(test text) 
+0

,如果您將其轉換會發生什麼UNIX時間傳遞給SqLite之前? –

+0

默認情況下,Python 2.4上沒有'sqlite'模塊。第一個代碼片段可以很好地使用'sqlite3'(來自stdlib)和Python 2.7。 – jfs

回答

1

SQLite數據庫我想你應該參數是這樣的:

def metodo(date): 
     conn = sqlite.connect('dataBase.db') 
     c = conn.cursor() 
     c.execute("INSERT INTO a values(%s)", (date,)) 
     conn.commit() 
     conn.close() 
+1

[sqlite3](http://docs.python.org/2/library/sqlite3.html)使用''?'''參數持有者。 – jfs