2017-03-28 1 views
0

% s을 날짜 문자열로 바꾸는 중 오류가 발생합니다.python mysql이 지원되지 않는 형식 문자 '' '

import datetime 

now = datetime.datetime.now() 

day_minus_one = now + datetime.timedelta(days=-1) 
new_date = day_minus_one.strftime('%Y%m%d') 

db = MySQLdb.connect(host='127.0.0.1', user='root', passwd='', db='daily_report') 
cur = db.cursor() 

sql = "select date, stp_dpc, count(*), concat(round(avg(status = 'Success') * 100), '%') as Success from daily where status not in ('data1', 'data2', 'data3') and date = %s group by date, stp_dpc" 

cur.execute(sql, new_date) 
rows = cur.fetchall() 

나는 문자를 리터럴 문자열 = '20170327'로 바꿉니다. 완벽하게 작동합니다.

cur.execute("select date, stp_dpc, count(*), concat(round(avg(status = 'Success') * 100), '%') as Success from daily where status not in ('data1', 'data2', 'data3') and date = '20170310' group by date, stp_dpc") 
rows = cur.fetchall() 
+1

이 [비슷한 문제] (http://stackoverflow.com/questions인가/16359143/insertion-datetime-into-mysql-db)? 올바른 형식으로 값을 강제 변환하려면'strftime'을 사용해야한다고 생각합니다. ISO 8601이 선호됩니다 :'YYYY-MM-DD'. – tadman

답변

0

방법에 대한 ... 날짜 = '{}'날짜별로 그룹, stp_dpc ".format (NEW_DATE는)

관련 문제