datetime モジュールの date 型および datetime 型のためのデフォルト適合関数 があります。これらの型は ISO 日付 / ISO タイムスタンプとして SQLite に送られます。
デフォルトの変換関数は datetime.date 用が "date" という名前で、 datetime.datetime 用が "timestamp" という名前で登録されています。
これにより、多くの場合特別な細工無しに Python の日付 / タイムスタンプを使えます。 適合関数の書式は実験的な SQLite の date/time 関数とも互換性があります。
以下の例でこのことを確かめます。
import sqlite3 import datetime con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) cur = con.cursor() cur.execute("create table test(d date, ts timestamp)") today = datetime.date.today() now = datetime.datetime.now() cur.execute("insert into test(d, ts) values (?, ?)", (today, now)) cur.execute("select d, ts from test") row = cur.fetchone() print today, "=>", row[0], type(row[0]) print now, "=>", row[1], type(row[1]) cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"') row = cur.fetchone() print "current_date", row[0], type(row[0]) print "current_timestamp", row[1], type(row[1])
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。