2017-01-19 81 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

相关问题