PyMySql在SQL查询中更改日期范围

时间:2015-12-14 15:47:23

标签: python pymysql

我想查看过去7天的数据,因此生成了值:

from_date = str(date.today() - timedelta(7))
to_date = str(date.today()

这样我就可以使用PyMySql进行查询,例如:

data = """SELECT * FROM table WHERE date > 'from_date' AND date < 'to_date'"""
db_conn = pymysql.connect(host=xxx, user=xxx, password=xxx)
df = pd.read_sql(data, con=db_conn)

这不起作用,我尝试在from_date和to_date周围使用不同的引号来尝试执行此操作。在PyMySql中引用它的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要通过query parameters

将变量值传递到查询中
data = """SELECT * FROM table WHERE date > %s AND date < %s"""
df = pd.read_sql(data, con=db_conn, params=[from_date, to_date])

查询中的%s是位置占位符。

您可能还需要格式化日期:

df = pd.read_sql(data, con=db_conn, 
                 params=[from_date.strftime('%Y-%m-%d'), 
                         to_date.strftime('%Y-%m-%d')])