2016-03-10 55 views
1

我有一个表填充值,其中一个是YYYY-MM-DD格式的日期。我试图按月打印所有“成本”值。所以,SQLite3蟒蛇按月提取数据

def SumByMonth(): 
    usrDate = raw_input('Enter month: ') 
    sql = '''SELECT cost FROM Finance WHERE strftime('%m', date) = ?''', (usrDate) 
    month_cost = [t[0] for t in cur.execute(sql)] 
    print month_cost 

此代码给了我这个错误:

ValueError: operation parameter must be str or unicode 

所以我想SQL命令实际上没有任何提取?我在这里错过了什么?

+0

嘛答案可以在这里找到:http://stackoverflow.com/a/16856730/2380332 – jason

回答

0

没有与线路有问题

sql = '''SELECT cost FROM Finance WHERE strftime('%m', date) = ?''', (usrDate) 

你需要编写SQL查询字符串或Unicode格式类似错误状态

这是一个正确的代码:

def SumByMonth(): 
    usrDate = raw_input('Enter month: ') 
    month_cost = [t[0] for t in cur.execute("SELECT cost FROM Finance WHERE strftime('%m', date) = ?", (usrDate,))] 
    print month_cost