首页 > 解决方案 > 无法获取 2 dateTime 之间的数据

问题描述

from pymysql import *
import pandas.io.sql as sql
from datetime import datetime, date, timedelta

current_date = date.today()
print(current_date)

current_date2 = current_date - timedelta(1)
print("Yesterday was: ", current_date2)

# connect the mysql with the python
con = connect(user="root", password="12345", host="localhost", database="test")

df = sql.read_sql('select * from tbl1 where datetime1 >= "2020-11-15" and datetime1 <= '"current_date"' ', con)
# print the data
print(df)

当我尝试将其DateTime作为变量传递时,它会生成一个错误:

pandas.io.sql.DatabaseError: sql 'select * from tbl1 where datetime1 >= "current_date2" and datetime1 <= current_date': (1525, "Incorrect DATETIME value: 'current_date2'")

标签: pythonmysqlpandasdatabasedataframe

解决方案


尝试这个:

'select * from tbl1 where datetime1 >= "2020-11-15" and datetime1 <= "{0}"'.format(current_date)

现在应该是这样的

df = sql.read_sql('select * from tbl1 where datetime1 >= "2020-11-15" and datetime1 <= "{0}"'.format(current_date), con)

如果有 2 个参数,则:

df = sql.read_sql('select * from tbl1 where datetime1 >= "{0}" and datetime1 <= "{1}"'.format(current_date2,current_date), con)


推荐阅读