如何在SQLi中使用时间数据选择记录

2024-09-27 18:06:06 发布

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

我是一个初学者程序员,我需要建立一个程序,将允许我检索记录的基础上,他们被收集的时间。我是在python框架中使用SQLite来实现这一点的。你知道吗

我的代码如下:

cur.execute("CREATE TABLE Conc(Timesec INT, Timehrs REAL, Photon INT, hms TEXT);")

creader = csv.reader(open(FileName, 'rb'), delimiter=',')
t = (creader,)
for t in creader:
    cur.execute("INSERT INTO Conc VALUES(?,?,?,?)", t)

此代码工作正常,并创建一个包含以下数据的表:

time(sec), time(h), photons, time (H:M:S) 
0.0 , 0.0000 ,         0 , 11:16:36
5.0 , 0.0014 ,      1698 , 11:16:41
10.0 , 0.0028 ,      1793 , 11:16:46
15.0 , 0.0042 ,      1764 , 11:16:51
20.0 , 0.0056 ,      1751 , 11:16:56
25.0 , 0.0069 ,      1779 , 11:17:01

这将持续数百万个条目(每5秒一个新记录)

我试图找到一种方法,使用H:m:S时间检索行,计算一些平均值,然后将解决方案应用于表中的其他行。我有一个以秒为单位的解决方案,但是这使得代码很难应用到其他文件(它们不是同时启动的)。你知道吗

例如,我的目标是在12:00:00到12:09:00之间调用特定的行。你知道吗

我试过这个:

query= cur.execute("SELECT AVG(Photon) FROM Conc WHERE hms BETWEEN strftime('%M', '12:00:11') AND strftime('%M', '12:09:11');")
print query
for row in cur.fetchall():
    print "The photons are", row[0]

这并没有抛出任何错误,但它返回“光子没有”,所以我显然没有正确的措辞。任何故障排除或帮助制定一个更优雅的解决方案将不胜感激。你知道吗


Tags: 代码inforexecutetime记录时间解决方案
1条回答
网友
1楼 · 发布于 2024-09-27 18:06:06

strftime('%M'从时间中提取分钟字段:

> SELECT strftime('%M', '12:00:11')
00

要与hms值进行比较,请直接使用时间:

SELECT ... WHERE hms BETWEEN '12:00:00' AND '12:09:59'

如果要根据时间间隔的长度进行任何计算,最好使用Timesec列。你知道吗

相关问题 更多 >

    热门问题