私は、後で比較を使用してレコードを取得することを目的として、SQLite3 に日付と時刻を格納することを何度も行ってきました。SELECT * WHERE date1 < date2
私は最終的に datetime.datetime オブジェクトを格納しようとすることをあきらめ、代わりに UNIX タイムスタンプを使用することにしました。これらは単なる int であり、操作が簡単ですが、それでもエラーが発生します。
import sqlite3 as lite
import datetime
import time
conn = lite.connect('dispatcher.db')
cur = conn.cursor()
query = "create table if not exists new_test (curent_dt)"
cur.execute(query)
conn.commit()
now = datetime.datetime.now() - datetime.timedelta(minutes=60)
temp = int(time.mktime(now.timetuple()))
cur.execute('insert into new_test (curent_dt) values (? )', (temp))
conn.commit()
conn.close()
次のエラーを返します。
cur.execute('insert into new_test (curent_dt) values (? )', (temp)) ValueError: パラメータの型がサポートされていません
問題をもう少し調査した後、末尾のコンマを使用して単一要素のタプルを作成する必要があることがわかりました。(temp,)