首页 > 解决方案 > 如何选择两个日期之间的数据,并将日期作为变量

问题描述

使用 Sqlite3 和 Python,我希望能够以日期作为变量获取两个日期之间的数据。例如

date1 = 2020-10-16
date2 = 2020-10-18

"SELECT SUM (total) FROM table WHERE date BETWEEN '%"+date1+"%' AND '%"+date2+"%'"

如何让 BETWEEN 获取变量中的日期。当我运行它并打印查询时,总和为 0,即使我将值放在 (total) 中的行内

标签: pythonsqlite

解决方案


您的变量应该是字符串:

date1 = "2020-10-16"
date2 = "2020-10-18"

因为像这样的变量:

date1 = 2020-10-16

被评估为1994= 2020 - 10 -16。

您应该?在查询中为 2 个日期参数使用占位符:

query = "SELECT SUM(total) AS total FROM tablename WHERE date BETWEEN ? AND ?"

并在执行查询时传递参数:

curs.execute(query, (date1, date2)) 

推荐阅读