gpt4 book ai didi

python - sqlite 条件 SELECT 日期时间

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:47 25 4
gpt4 key购买 nike

我在 sqlite3(python) 中创建了数据库,如下所示:

  [ 'LOCAL_TIME', 'PROPERTY A', 'PROPERTY B']
[ 16-12-2013 00:00:00, 5.7, 8.0]
[ 16-12-2013 00:20:00, 5.6,8.1]
...
[16-12-2014 00:00:00,8.1,8.5]

行具有以下属性:

  'LOCAL_TIME' timestamp,
'PROPERTY A' REAL,
'PROPERTY B' REAL,
PRIMARY KEY(LOCAL_TIME)

因此,每 20 分钟他们就排一次,这样就持续了一整年。我只想选择 LOCAL_TIME 为午夜(即每天 00:00:00)的那些行。我不知道解决方案,也无法在互联网上找到它。我认为 LOCAL_TIME 列有问题。

感谢您提前帮助我

编辑

我找到了解决方案:

    import datetime as dt
import sqlite3
connect = sqlite3.connect(xxxxxxxx)
cur=connect.cursor()
time=[]
PROPERTYA=[]
PROPERTYB=[]
for row in cur.execute('SELECT * FROM measurements'):
temp=dt.datetime.strptime(row[0],'%Y-%m-%d %H:%M:%S')
if (temp.hour==0 and temp.minute==0):
time.append(row[0])
PROPERTYA.append(row[1])
PROPERTYB.append(row[2])

这工作正常,但我最好将 LOCAL_TIME 的定义更改为 TEXT。

他们是另一种解决方案吗?

最佳答案

将时间戳值存储为unixepoch,这使得比较变得容易:

看看下面的示例:

创建表:

create table measurements(id INTEGER PRIMARY KEY AUTOINCREMENT, LOCAL_TIME TIMESTAMP);

插入数据:

insert into measurements(LOCAL_TIME) values(strftime('%s', '2013-12-16 00:00:00'));
insert into measurements(LOCAL_TIME) values(strftime('%s', '2013-12-16 00:20:00'));
insert into measurements(LOCAL_TIME) values(strftime('%s', '2013-12-17 00:00:00'));
insert into measurements(LOCAL_TIME) values(strftime('%s', '2013-12-17 00:20:00'));

查询“仅选择 LOCAL_TIME 为午夜(即每天 00:00:00)的行”

select datetime(LOCAL_TIME, 'unixepoch') from measurements where LOCAL_TIME - strftime("%s", date(LOCAL_TIME, 'unixepoch'))=0;

简单的想法:如果 datetime-date = 0 我们选择该行

输出:

2013-12-16 00:00:00
2013-12-17 00:00:00

sqlite 日期、时间函数的链接:http://www.tutorialspoint.com/sqlite/sqlite_date_time.htm

关于python - sqlite 条件 SELECT 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28902638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com