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

Iterating SQL query inside python loop and changing the value of date function in SQL query with every loop

我有一个 SQL 查询,我想使用 python for 循环对其进行迭代。有没有一种方法可以在 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 的新手

你最好在 SQL 但是,如果您需要在 Python 中执行此操作,这是一种方法:

for d in daterange(date1, date2): 
    SQL = f"SELECT * FROM table WHERE TABLE.CREATED_AT = {d}" 
    cursor.execute(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)