2013-05-14 105 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