Reputation: 4824
import sqlite3
import datetime
today = datetime.date.today()
db_name = "test.db"
db = sqlite3.connect(db_name, detect_types=sqlite3.PARSE_DECLTYPES)
c = db.cursor()
c.execute('create table changes (type string, file_name string, modified timestamp)')
c.execute('insert into changes values(?, ?, ?)', ('M', 'source/test-this.rst', datetime.datetime.now()))
db.commit()
last_run = datetime.datetime(2012, 2, 27, 23, 22, 21, 613477)
c.execute('''select modified from changes where modified > ?''', (last_run))
print c.fetchall()
I'm getting this error...
$ python sqlite.py
Traceback (most recent call last):
File "sqlite.py", line 18, in <module>
c.execute('''select modified from changes where modified > ?''', (last_run))
ValueError: parameters are of unsupported type
Upvotes: 2
Views: 1765
Reputation: 94605
Simply use a tuple:
c.execute('''select modified from changes where modified > ?''', (last_run,))
This is a common gotcha…
Upvotes: 4