2016-03-10 57 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