SQLite3 python按月提取数据

时间:2016-03-10 04:33:26

标签: python date sqlite

我有一个填充了值的表,其中一个是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命令实际上并没有提取任何东西?我在这里缺少什么?

1 个答案:

答案 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