sqlite - SQLITE 选择不到 1 分钟的不同条目
问题描述
我正在制作一个需要从 sql lite db 中提取实时数据的航班跟踪地图。我目前只是使用 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'
从 value 中删除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, '.'))
推荐阅读
- javascript - 如何将嵌套对象变成数组?
- visual-studio - 使用 ASP.NET Core 3.1 从发布中排除非缩小文件
- php - 在自身内部更新 foreach() 的迭代器
- ibm-mq - IBM MQ 客户端 c# 和密码规范
- java - 为什么我们要使用'scan.nextLine();' 在将字符串作为输入之前?
- xml - Jasperreports 使用来自 XML 的 2 个不同数据集的 2 个系列创建图表
- android - gradle 同步正常,但无法构建项目
- sql - 如果可能有两行,则从第二个表中仅获取表连接中的单行
- javascript - 关闭模式时停止视频?
- javascript - BootstrapVue 模态在渲染的 nuxt 元素之外打开