2016-11-30 33 views
0

私はライブラリ用のプログラムを作成していますが、sqliteデータベースには、書籍の名前と最後に書籍が取り出された日付最後に返されます。これまでSQLiteは、日付が1週間以上経過したレコードを返します

私は(一週間以上前に取り出し、まだ返却されていない図書)延滞図書を表示するクエリを必要 私のコードは次のとおりです。

def findOverdueBooks(event): 
    findRecords = c.execute("SELECT * FROM bookList WHERE returned = '' AND takenOut < 'now' , '-1 week' ") 
    for row in findRecords: 
     print(row) 

とき、私はこのエラーを取得していますコードはそれはそれはdocumentationに示されている方法であるとしてコンマはエラーの原因となっている理由を私は理解していない

line 31, in findOverdueBooks 
findRecords = c.execute("SELECT * FROM bookList WHERE returned = '' AND takenOut < 'now' , '-1 week' ") 
sqlite3.OperationalError: near ",": syntax error 

を実行しています。

私はまだ返されていない本のレコードを返すクエリの最初の部分をテストしたところ、うまくいきました。私はちょうどうまく動作しています。

+1

日付機能の呼び出しがありません – e4c5

答えて

0

日時の比較で問題が発生しています。それはむしろ、あなただけの日付の部分と比較している場合は、同様に、以下のように試すことができます>比較

AND takenOut > datetime('now', '-1 week') 

する必要がありますより多くの情報

ためSQLite Date And Time Functions

AND takenOut < datetime('now', '-1 week') 

参照してくださいする必要があります

WHERE DATE(takenOut) >= DATE('now', 'weekday 0', '-7 days') 
+0

ありがとうs、それは構文エラーを取り除いています。ただし、結果は返されません。私のデータベースのように、takenOutフィールドが "2016-11-15"のレコードがあります。どんな考え?もし問題がなければ、私はちょうど新しい質問を作ることができます – JoeW373

+0

@ JoeW373、それが役立ちます答えの編集を参照してください。 – Rahul

+0

「-1週」ではなく「-7日」と言い換えて変更しましたが、今は問題なく動作しています。助けてくれてありがとう – JoeW373

関連する問題