2
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

1 Answer 1

4

Simply use a tuple:

c.execute('''select modified from changes where modified > ?''', (last_run,))

This is a common gotcha…

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.