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

2024-09-28 12:15:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在SQLite数据库中查询满足条件cur.execute("SELECT * FROM data WHERE 'FirstPacketTime' > 1570680300")的行

我浏览了多个stackoverflow问题和其他在线资源。在本例中,FirstPacketTime db字段被定义为整数数据类型(datetime单位为秒)。行结果也以整数形式返回,但是行数据包含FirstPacketTime值明显小于上面显示的值的行。将“大于”更改为“等于”或“小于”将导致没有查询结果。我错过了什么?我以前用python对MySQL数据库进行过查询,没有任何问题

数据库架构

  • (0,'FirstPacketTime','integer',0,无,0)
  • (1,'SourceIP','text',0,无,0)
  • (2,'源端口','整数',0,无,0)
  • (3,'DestinationIP','text',0,无,0)
  • (4,'DestinationPort','integer',0,无,0)
  • (5,'协议','文本',0,无,0)
  • (6,'TotalBytes','integer',0,None,0)
  • (7,'TotalPackets','integer',0,无,0)

查询结果-前10条记录

  • (1570676279,'19.116.151.212',9876,'19.116.0.157',53299,'tcp\ U ip',56,1)
  • (1570676279,'19.116.151.212',9876,'19.116.0.157',53301,'tcp\ U ip',56,1)
  • (1570650779,'19.116.1.36',53497,'19.116.160.133',102,'tcp\ U ip',67799,696)
  • (1570676339,'19.116.89.20',3139,'19.116.29.147',445,'tcp\ U 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\ U ip',96,2)
  • (1570676339,'19.116.89.24',2398,'19.116.29.6',445,'tcp\ U 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)

代码

cur.execute("SELECT * FROM data WHERE 'FirstPacketTime' > 1570680300")
rows = cur.fetchmany(10)

Tags: textfromip数据库executesqlitedata整数
1条回答
网友
1楼 · 发布于 2024-09-28 12:15:20

已创建示例数据库

enter image description here

enter image description here

下面的查询已执行,并且能够获取记录

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)]

我所做的是删除单引号

而且,最初它对我来说并没有出现,因为我没有将数据提交到数据库

一旦数据被提交到数据库,我就能够得到输出

相关问题 更多 >

    热门问题