I kept having sql syntax error.. what am I missing in here in order to pull data by day.
Here's my python error :
pyodbc.ProgrammingError: ('42000', "[42000] [MySQL][ODBC 5.1 Driver][mysqld-5.1.63rel13.4-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s and date_created < %s ,(start, next)' at line 11 (1064) (SQLExecDirectW)")
File "d:\sasdev\datax\program\py\global.py", line 33, in
""")
Here's the code :
start = datetime.date(2012,01,01)
next = start + datetime.date.resolution
while next <= datetime.date.today():
print start, next
cur_ca.execute("""
select id,
date_created,
data
from bureau_inquiry where date_created >= %s and date_created < %s %(start, next)
""")
start = next
next = start + datetime.date.resolution
解决方案
You execute a query with formatting parameters but never pass these in; the % (start, next) part goes outside of the SQL query:
cur_ca.execute("""
select id,
date_created,
data
from bureau_inquiry where date_created >= %s and date_created < %s
""" % (start, next)
)
You would be better off using SQL parameters however, so the database can prepare the query and reuse the query plan:
cur_ca.execute("""
select id,
date_created,
data
from bureau_inquiry where date_created >= ? and date_created < ?
""", (start, next)
)
PyODBC uses ? for SQL parameters.