datetimeがこの形式の値を返すため、以下のコードは機能しません。 datetime.date(2016,12,5)。データベースの情報はdatetimeとして入力されたので、SQL Liteはそれに対処できると考えました。日時SQLコマンドが機能しません
唯一の違いは、テーブルイベントの日付には時間と分があるため、その日のすべてのイベントを抽出しようとしているためです。
1日
date1 = (datetime.datetime.now() + datetime.timedelta(days=1)).date()
rows1 = db.execute ("SELECT * FROM events WHERE date LIKE :date ORDER BY date", date = date1)
ERROR
rows1 = db.execute ("SELECT * FROM events WHERE date LIKE :date ORDER BY date", date = date1) File "/usr/lib/python3/dist-packages/cs50/sql.py", line 41, in execute raise RuntimeError(e) RuntimeError: Don't know how to literal-quote value datetime.date(2016, 12, 5)
どのように私はこの問題を解決することができますか?
%を必要とする仕事をするためには...
それを解決文字列 '2016-12-06' Python SQLiteドライバは、日付オブジェクトを文字列化する方法を知らなかったことを伝えていました。あなたはそれを実行しなければなりませんでした。 '%'は 'LIKE'のワイルドカードに過ぎません。' 2016-12-06% 'で渡すと、 '2016-12-06'で始まる日付に一致します。 – Schwern