我有一些数据存储在SQLite数据库和一个Python程序中,用来检索它们。用户输入两个日期(例如2010年1月1日-2013年1月1日),程序应对2010年1月1日至2013年1月1日的数据进行分析。 代码检索数据的方式如下:
con = lite.connect("data.db")
cur = con.cursor()
cur.execute('SELECT ROWID from Table WHERE Date IS "01/01/2010"')
rowDate1 = cur.fetchall()
cur.execute('SELECT ROWID from Table WHERE Date IS "01/01/2013"')
rowDate2 = cur.fetchall()
这两个变量rowDate1
和rowDate2
是用于执行SQL语句的次极端和高级极端,该语句将返回Python程序中使用的值。
基本上,如果我想对01/01/2010-01/01/2013运行分析,变量rowDate1
和{
因此,直到某个日期,特别是2010年1月1日,变量rowDate1
返回rowID编号,并给出以下示例输出:
但是,在2010年1月1日之后,cur.fetchall()
的返回是空的:rowDate1 = []
我把数据检入数据库,它们存在,它们的rowID和其他的完全一样。
此外,如果数据不存在,那么即使变量rowDate2
也应该返回一个空值,事实并非如此。
事实上,如果我执行:
cur.execute('SELECT ROWID from Table WHERE Date IS "01/01/2012"')
rowDate1 = cur.fetchall()
rowDate2 = cur.fetchall()
print rowDate1, rowDate2
我将得到以下输出:
[] [(6002,)]
我知道,这很荒谬,但我真的不明白这怎么会发生。 我担心这是一个错误的代码,我真的不知道。有没有人知道我如何移动来检测它,它依赖于什么?在
注意:关于代码的其余部分,我实在没什么可以发表的。完全相同的语句适用于变量rowDate2
的属性,而不是变量{rowDate1
不会有值,而变量rowDate2
会有值。但是很奇怪,因为它们是相同的语句,只是rowDate1
在之前被执行!?在
完整代码:
con = None
con = lite.connect(dPath.adresseBDD + '/' + symb + '.db')
cur = con.cursor()
cur.execute('SELECT ROWID from ' + frequence + ' WHERE Date IS "' + date1+'"' )
rowDate1= cur.fetchall()
cur.execute('SELECT ROWID from ' + frequence + ' WHERE Date IS "' + date2+'"' )
rowDate2= cur.fetchall()
目前没有回答
相关问题 更多 >
编程相关推荐