SQLite返回日期超过一周的记录

时间:2016-11-30 11:39:01

标签: python sql database sqlite

我正在为一个图书馆制作一个程序,在sqlite数据库中有一个书籍表,其中包括该书最后一次取出的日期。

我需要一个查询来显示逾期的书籍。到目前为止,我的代码如下:

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

运行代码时出现此错误

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

我不明白为什么逗号导致错误,因为它是documentation中显示的错误。

1 个答案:

答案 0 :(得分:2)

您的日期时间比较导致此问题。它应该是

AND takenOut < datetime('now', '-7 day')

有关详细信息,请参阅SQLite Date And Time Functions

那应该是>比较

AND takenOut > datetime('now', '-7 day')

如果您只与日期部分进行比较,您可以尝试以下方式

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