Sqlite,其中Python中对整数值字段的查询不起作用
我试图在SQLite数据库中查询满足条件的行Sqlite,其中Python中对整数值字段的查询不起作用,python,sqlite,Python,Sqlite,我试图在SQLite数据库中查询满足条件的行cur.execute(“SELECT*FROM data WHERE'FirstPacketTime'>157068300”) 我浏览了多个stackoverflow问题和其他在线资源。在这种情况下,FirstPacketTime db字段定义为整数数据类型(以秒为单位的日期时间)。行结果也返回为整数,但是行数据包含FirstPacketTime值明显小于上面显示的值的行。将“大于”更改为“等于”或“小于”,将导致没有查询结果。我错过了什么?我以前使
cur.execute(“SELECT*FROM data WHERE'FirstPacketTime'>157068300”)
我浏览了多个stackoverflow问题和其他在线资源。在这种情况下,FirstPacketTime db字段定义为整数数据类型(以秒为单位的日期时间)。行结果也返回为整数,但是行数据包含FirstPacketTime值明显小于上面显示的值的行。将“大于”更改为“等于”或“小于”,将导致没有查询结果。我错过了什么?我以前使用python对MySQL数据库进行过查询,没有任何问题
数据库模式
- (0,'FirstPacketTime','integer',0,None,0)
- (1,'SourceIP','text',0,None,0)
- (2,'SourcePort','integer',0,None,0)
- (3,'DestinationIP','text',0,None,0)
- (4,'DestinationPort','integer',0,None,0)
- (5,‘协议’、‘文本’、0、无、0)
- (6,'TotalBytes','integer',0,None,0)
- (7,'TotalPackets','integer',0,None,0)
- (1570676279,'19.116.151.212',9876,'19.116.0.157',53299,'tcp_ip',56,1)
- (1570676279,'19.116.151.212',9876,'19.116.0.157',53301,'tcp_ip',56,1)
- (1570650779,'19.116.1.36',53497,'19.116.160.133',102,'tcp_ip',67799,696)
- (1570676339,'19.116.89.20',3139,'19.116.29.147',445,'tcp_ip',96,2)
- (1570676339,'19.116.89.20',3479,'19.116.29.189',445,'tcp_ip',96,2)
- (1570676339,'19.116.89.17',3843,'19.116.29.33',445,'tcp_ip',96,2)
- (1570676339,'19.116.89.24',2398,'19.116.29.6',445,'tcp_ip',96,2)
- (1570676339,'19.116.89.20',3206,'19.116.29.159',445,'tcp_ip',96,2)
- (1570676339,'19.116.89.20',3161,'19.116.29.151',445,'tcp_ip',96,2)
- (1570676339,'19.116.89.15',1082,'19.116.0.16',445,'tcp_ip',96,2)
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
print (c.execute("SELECT * FROM test WHERE FirstPacketTime < 1570676280").fetchall())
print (c.execute("SELECT * FROM test WHERE FirstPacketTime = 1570676279").fetchall())
print (c.execute("SELECT * FROM test WHERE FirstPacketTime = 1570676339").fetchall())
[(1570676279, '19.116.151.212', 9876)]
[(1570676279, '19.116.151.212', 9876)]
[(1570676339, '19.116.89.20', 3139)]
导入sqlite3
conn=sqlite3.connect('test.db')
c=连接光标()
打印(c.execute(“SELECT*FROM test,其中FirstPacketTime<1570676280”).fetchall()
打印(c.execute(“SELECT*FROM test,其中FirstPacketTime=1570676279”).fetchall()
打印(c.execute(“SELECT*fromtest,其中FirstPacketTime=1570676339”).fetchall()
[(1570676279, '19.116.151.212', 9876)]
[(1570676279, '19.116.151.212', 9876)]
[(1570676339, '19.116.89.20', 3139)]
我所做的是删除了单引号
而且,最初它对我来说并没有出现,因为我并没有将数据提交到数据库
一旦将数据提交到数据库,我就能够获得创建的示例数据库的输出
执行了下面的查询,并且能够获取记录
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
print (c.execute("SELECT * FROM test WHERE FirstPacketTime < 1570676280").fetchall())
print (c.execute("SELECT * FROM test WHERE FirstPacketTime = 1570676279").fetchall())
print (c.execute("SELECT * FROM test WHERE FirstPacketTime = 1570676339").fetchall())
[(1570676279, '19.116.151.212', 9876)]
[(1570676279, '19.116.151.212', 9876)]
[(1570676339, '19.116.89.20', 3139)]
导入sqlite3
conn=sqlite3.connect('test.db')
c=连接光标()
打印(c.execute(“SELECT*FROM test,其中FirstPacketTime<1570676280”).fetchall()
打印(c.execute(“SELECT*FROM test,其中FirstPacketTime=1570676279”).fetchall()
打印(c.execute(“SELECT*fromtest,其中FirstPacketTime=1570676339”).fetchall()
[(1570676279, '19.116.151.212', 9876)]
[(1570676279, '19.116.151.212', 9876)]
[(1570676339, '19.116.89.20', 3139)]
我所做的是删除了单引号
而且,最初它对我来说并没有出现,因为我并没有将数据提交到数据库
一旦数据被提交到数据库,我就能够获得输出删除单引号:
SELECT*FROM data WHERE FirstPacketTime>157068300
我尝试了,但没有结果。你有希望返回的行吗?要添加到forpas的注释中,请参阅。单引号分隔字符串,而不是数据库对象名称。我确实有我希望返回的数据。我还尝试设置条件以返回值1570676279(上面查询结果中显示的第一个值)的FirstPacketTime,但没有返回任何内容。从fieldname中删除单引号不会返回任何结果。删除单引号:SELECT*from data WHERE FirstPacketTime>157068300
我尝试过,但没有结果。您是否有希望返回的行?要添加到forpas的注释,请参阅。单引号分隔字符串,而不是数据库对象名称。我确实有我希望返回的数据。我还尝试设置条件以返回值1570676279(上面查询结果中显示的第一个值)的FirstPacketTime,但没有返回任何内容。从fieldname中删除单引号不会返回任何结果。