2017-01-19 4 views
-1

'dd/mm/yyyy'形式の日付を格納する 'bookings'というテーブルに、'16/10/2017 'のような' date 'という列を持つデータベースがあります(' all_bookings 'と呼ばれます)。 。私は、特定の月のすべての日付を検索し、それらを出力する関数を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

関連する問題