我有一个填充了值的表,其中一个是YYYY-MM-DD格式的日期。我试图按月打印所有“成本”值。所以,
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 :(得分:0)
行
有问题sql = '''SELECT cost FROM Finance WHERE strftime('%m', date) = ?''', (usrDate)
您需要以字符串或unicode格式编写SQL查询,如错误状态
这是一个正确的代码:
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