pymysql выдает ошибку
"pymysql \ cursors.py: 170: Предупреждение: (1292," Неверное значение даты и времени: '20120101240000' ")
result = self._query (query) "
Но когда я печатаю SQL-запрос в терминале и запускаю его в MySQL Workbench, он работает нормально.
Код Python:
import pandas as pd
import datetime
import pymysql
#AWS connection variables
host=""
port=
dbname=""
user=""
password=""
conn = pymysql.connect(host, user=user,port=port, passwd=password, db=dbname)
for delivery_datetime in [datetime.datetime(2012,1,1) + datetime.timedelta(hours=x) for x in range(365*24)]:
for cop_hour in range(1,48):
sql = """
SELECT a.Delivery_Date, a.Hour_Ending, sum(a.Eff_HASL) as total_eff_HASL from aspire_ercot_cop.cop2012 as a
inner join (select Resource_Name, Delivery_Date, Hour_Ending, max(submit_time) as max_submit
from aspire_ercot_cop.cop2012
where (Submit_Time < cast(Delivery_Date as datetime) + Hour_Ending - interval {0} hour)
and (Delivery_Date ='{1}') and (Hour_Ending = '{2}:00:00')
group by resource_name, delivery_date, hour_ending
) as b
on a.resource_name = b.resource_name and a.delivery_date = b.delivery_date and a.hour_ending = b.hour_ending and a.submit_time = b.max_submit
INNER JOIN(select Resource_Name, Delivery_Date, Hour_Ending, submit_time, max(PITStop) as max_stop
from aspire_ercot_cop.cop2012
where (Submit_Time < cast(Delivery_Date as datetime)- interval {0} hour)
and (Delivery_Date ='{1}') and (Hour_Ending = '{2}:00:00')
group by resource_name, delivery_date, hour_ending, Submit_Time
)as c
on a.resource_name = c.resource_name and a.delivery_date = c.delivery_date and a.hour_ending = c.hour_ending and a.PITStop = c.max_stop
where (a.Delivery_Date ='{1}') and (a.Hour_Ending ='{2}:00:00')
;"""
sql = sql.format(cop_hour, delivery_datetime.date(),str(delivery_datetime.hour+1).zfill(2))
df_cop = pd.read_sql(eff_COP_sql, conn)
Когда я добираюсь до "df_cop = pd.read_sql (eff_COP_sql, conn)", он выдает ошибку.
Когда я отлаживаю и печатаю запрос, он выглядит нормально и отлично работает в MySQL Workbench:
SELECT a.Delivery_Date, a.Hour_Ending, sum(a.Eff_HASL) as total_eff_HASL from aspire_ercot_cop.cop2012 as a
inner join (select Resource_Name, Delivery_Date, Hour_Ending, max(submit_time) as max_submit
from aspire_ercot_cop.cop2012
where (Submit_Time < cast(Delivery_Date as datetime) + Hour_Ending - interval 1 hour)
and (Delivery_Date ='2012-01-01') and (Hour_Ending = '01:00:00')
group by resource_name, delivery_date, hour_ending
) as b
on a.resource_name = b.resource_name and a.delivery_date = b.delivery_date and a.hour_ending = b.hour_ending and a.submit_time = b.max_submit
INNER JOIN(select Resource_Name, Delivery_Date, Hour_Ending, submit_time, max(PITStop) as max_stop
from aspire_ercot_cop.cop2012
where (Submit_Time < cast(Delivery_Date as datetime)- interval 1 hour)
and (Delivery_Date ='2012-01-01') and (Hour_Ending = '01:00:00')
group by resource_name, delivery_date, hour_ending, Submit_Time
)as c
on a.resource_name = c.resource_name and a.delivery_date = c.delivery_date and a.hour_ending = c.hour_ending and a.PITStop = c.max_stop
where (a.Delivery_Date ='2012-01-01') and (a.Hour_Ending ='01:00:00')
;
Любая помощь будет принята с благодарностью!
Спасибо