Python SQLITE替换查询不从数据库返回任何内容

时间:2016-09-15 22:21:31

标签: python select flask sqlite

我正在尝试执行以下查询:

sqlite> select * from history where timeStamp >= "2016-09-15 13:05:00" and timeStamp < "2016-09-15 13:06:00";
timeStamp            isOpen    
-------------------  ----------
2016-09-15 13:05:04  0         
2016-09-15 13:05:09  0         
2016-09-15 13:05:14  1         
2016-09-15 13:05:19  1         
2016-09-15 13:05:24  1         
2016-09-15 13:05:29  1         
2016-09-15 13:05:34  1         
2016-09-15 13:05:39  0         
2016-09-15 13:05:44  1         
2016-09-15 13:05:49  1         
2016-09-15 13:05:54  1         
2016-09-15 13:05:59  0         

从Postman我跑:{{origin}}:{{port}}/logs?from=201609151305&to=201609151306

在Python中,我将这些值翻译为:2016/09/15 13:05:00 2016/09/15 13:06:00,它们将传递给我的帮助方法:

vals = (lowStr, upperStr)
query = 'select * from history where timeStamp >= ? and timeStamp < ?'
returnList = accessDB('SELECT',query,vals)

AccessDB然后执行以下操作:

def accessDB(operation, query, vals):
    con = None
    try:
        con = sqlite3.connect('logs.db')
        cur = con.cursor()
        cur.execute(query, vals)
        if operation == 'SELECT':
            return cur.fetchall()
        if operation == 'INSERT':
            con.commit()
    except sqlite3.Error as e:
        print("Error %s:" % e.args[0])
        sys.exit(1)
    finally:
        if con:
            con.close()

然而,结果中没有返回任何内容。返回列表为空。我做错了什么?

1 个答案:

答案 0 :(得分:1)

在您的示例SQL中,您使用的格式为

的日期时间
YYYY-MM-DD HH:MM:SS

但是,在Python示例中,您使用的格式为

的日期时间
YYYY/MM/DD HH:MM:SS

SQLite并未将此视为有效的日期格式。将/更改为- s(如何执行此操作取决于您的格式化方式)。