2017-01-19 107 views
-1

我有一個名爲'date'的數據庫(稱爲'all_bookings'),名爲'bookings',它以'dd/mm/yyyy'的形式存儲日期,例如'16/10/2017 「。我想在python中編寫一個函數,它將搜索特定月份的所有日期,並輸出它們。例如,如果在'12/12/2017','23/11/2018'和'19/12/2018'中存儲的日期中,我想輸出12月份的所有日期,我將如何處理這個?我知道如何搜索特定的日期,而不是特定的月份。任何幫助將很樂意欣賞。謝謝如何使用python在sqlite數據庫中搜索日期?

+1

你嘗試過這一點(做一個查詢)自己嗎? – depperm

+0

不,你是怎麼做到的? – brenda

回答

0

SUBSTR函數將做你想要的。修改爲完成OP評論中提出的內容。

import sqlite3 
conn = sqlite3.connect(':memory:') 

events = [ 
    ('12/12/2017', 'ev_1'), 
    ('23/11/2018', 'ev_2'), 
    ('19/12/2018', 'ev_3'), 
    ] 

conn.execute('CREATE TABLE bookings (date, event)') 
conn.executemany('INSERT INTO bookings (date, event) values (?,?)', events) 

validMonth = False 
while not validMonth: 
    lookForMonth = input('What month, please? (number from 1 through 12):') 
    try: 
     validMonth = 1<=int(lookForMonth)<=12 
    except: 
     pass 

sqlCmd = 'SELECT date FROM bookings WHERE SUBSTR(date,4,2)="%.2i"' % int(lookForMonth) 
for row in conn.execute(sqlCmd): 
    print (row) 

結果是:

('12/12/2017',) 
('19/12/2018',) 
+0

謝謝,這個工程,我將如何調整它而不是使用月搜索作爲'12',我想搜索一個月,由用戶輸入,像一個變量? – brenda

+0

編輯答案。 - –

+0

正是我所需要的!完美的作品,謝謝! – brenda

相關問題