SQLITE选择存在时间小于1分钟的不同表项



我正在制作一个航班跟踪地图,需要从sql lite数据库中提取实时数据。我目前只是使用sqlite可执行文件来导航数据库,并了解如何与之交互。每架飞机都由唯一的hex_ident标识。我想要一份所有在最后一分钟发出信号的飞机的名单,以确定哪些飞机现在实际上是活跃的。我试着

select distinct hex_ident, parsed_time 
from squitters 
where parsed_time >= Datetime('now','-1 minute')

我只期望一个包含4或5个hex_idents的列表,但我只是得到每个条目的列表(仅限今天的条目),有些超出了1分钟的范围。我是sql的新手,所以我真的不知道如何做到这一点。下面是每个条目的样子。这个表叫做squitters

{
"message_type":"MSG",
"transmission_type":8,
"session_id":"111",
"aircraft_id":"11111",
"hex_ident":"A1B4FE",
"flight_id":"111111",
"generated_date":"2021/02/12",
"generated_time":"14:50:42.403",
"logged_date":"2021/02/12",
"logged_time":"14:50:42.385",
"callsign":"",
"altitude":"",
"ground_speed":"",
"track":"",
"lat":"",
"lon":"",
"vertical_rate":"",
"squawk":"",
"alert":"",
"emergency":"",
"spi":"",
"is_on_ground":0,
"parsed_time":"2021-02-12T19:50:42.413746"
}

任何想法?

必须将'T'parsed_time的值中去掉,或者也使用datetime()来进行比较:

where datetime(parsed_time) >= datetime('now', '-1 minute')

请注意,datetime()函数不考虑微秒,所以如果您需要100%的准确性,您必须将它们放在代码中:

where replace(parsed_time, 'T', ' ') >= 
datetime('now', '-1 minute') || substr(parsed_time, instr(parsed_time, '.')) 

最新更新