Sqlite,其中Python中对整数值字段的查询不起作用

Sqlite,其中Python中对整数值字段的查询不起作用,python,sqlite,Python,Sqlite,我试图在SQLite数据库中查询满足条件的行cur.execute(“SELECT*FROM data WHERE'FirstPacketTime'>157068300”) 我浏览了多个stackoverflow问题和其他在线资源。在这种情况下,FirstPacketTime db字段定义为整数数据类型(以秒为单位的日期时间)。行结果也返回为整数,但是行数据包含FirstPacketTime值明显小于上面显示的值的行。将“大于”更改为“等于”或“小于”,将导致没有查询结果。我错过了什么?我以前使

我试图在SQLite数据库中查询满足条件的行
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)
查询结果-前10条记录
  • (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中删除单引号不会返回任何结果。