2016-11-30 2 views
0

Я делаю программу для библиотеки, а в базе данных sqlite есть таблица для книг, которая включает имя книги и дату, когда последняя книга была вынимана и последний вернулся.SQLite возвращает записи, где дата больше недели.

Мне нужен запрос, чтобы показать просроченные книги (книги, которые были взяты из более недели назад и не были возвращены еще) Мой код до сих пор следующим образом:

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

Я получаю эту ошибку, когда код выполняется

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

Я не понимаю, почему запятая вызывает ошибку в том, что, как показано в documentation.

Я испытал первую часть запроса (который будет возвращать записи книг, которые не были возвращены еще), и что работает отлично, я просто изо всех сил, чтобы выяснить, как получить вторую часть работы

+1

Отсутствует звонок к функции даты – e4c5

ответ

0

Ваше сравнение datetime вызывает здесь проблему. Это скорее должно быть

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

Thank s, это избавило от синтаксической ошибки. Однако он не возвращает никаких результатов. Как и в моей базе данных, у меня есть записи, где поле takeOut равно «2016-11-15». Любая идея почему? Если нет, то никаких проблем, я могу просто задать новый вопрос – JoeW373

+0

@ JoeW373, см. Править в ответ, если это поможет. – Rahul

+0

Я изменил его, чтобы сказать «-7 день» вместо «-1 неделя», и теперь это работает, странно, как это вызвало проблему. Спасибо за помощь – JoeW373

Смежные вопросы