在python循环中迭代SQL查询,并在每个循环中更改SQL查询中日期函数的值



我有一个SQL查询,我想使用python进行循环迭代。有没有一种方法可以在sql查询中定义一个变量,并用每个python循环更新它的值?

date1 = datetime.date(2017, 1, 1) date2 = datetime.date(2017, 12, 31) for d in daterange(date1, date2): SQL = "SELECT * FROM table WHERE TABLE.CREATED_AT = '2017-01-01' cursor.execute(sql)

我想迭代2017年的所有日期(created_at(。这是一个示例问题,我不能在查询中使用WHERE子句表示日期,因为它是一个有很多依赖关系的复杂查询。有人能帮我吗?如果有任何错误,我提前道歉,因为我是这个平台的新手,也是使用python使用sql的新手。

对于您指定格式的日期,我认为您应该以这种方式进行:

import datetime
date1 = datetime.date(2017, 1, 1)
date2 = datetime.date(2017, 12, 31)
date_generated = [date1 + datetime.timedelta(days=x) for x in range(0, (date2-date1).days)]
for date in date_generated:
SQL = "SELECT * FROM table WHERE TABLE.CREATED_AT = '{}';".format(date)
cursor.execute(sql)

您最好在SQL中执行然而,如果你需要在Python中完成,这里有一种方法:

for d in daterange(date1, date2): 
SQL = f"SELECT * FROM table WHERE TABLE.CREATED_AT = {d}" 
cursor.execute(sql)

最新更新