我正在为图书库制作一个程序,在 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
我不明白为什么逗号会导致错误,因为这就是它在文档 https://www.techonthenet.com/sqlite/functions/date.php.
您的日期时间比较导致了这里的问题。更应该是
AND takenOut < datetime('now', '-7 day')
See SQLite 日期和时间函数 https://www.sqlite.org/lang_datefunc.html了解更多信息
那应该是一个>
比较
AND takenOut > datetime('now', '-7 day')
如果您仅与日期部分进行比较,您也可以尝试如下
WHERE DATE(takenOut) >= DATE('now', 'weekday 0', '-7 days')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)