我想查看过去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中引用它的最佳方法是什么?
答案 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')])