我有一个大型SQLite3数据库,其中包含30个表,其中最大的一个是GPS数据表,其字符串或多或少每秒存储一次。其他表的记录范围均为500-3000。我正在尝试从一个表中提取所有记录,并根据匹配的时间戳将它们与GPS表中的坐标,纬度和经度链接,格式为yyyy-mm-dd hh:mm:ss.sss表。我当前的字符串是
选择* 从gpsData,目击 其中strftime('%Y-%m-%d%H:%M:%S',gpsData.UTC)= strftime('%Y-%m-%d%H:%M:%S',景点。世界标准时间);
这给了我在合理的时间内需要的东西。唯一的问题是,在GPS表中我缺少一些值,我猜想GPS覆盖率不高,因此我得到了许多带有NULL值的记录。有没有一种方法可以修改我的陈述,以便我可以搜索确切的匹配项或最接近的匹配项,但是可以追溯到过去?
我尝试过:
选择* 从gpsData,目击 在strftime('%Y-%m-%d%H:%M:%S',gpsData.UTC)> = strftime('%Y-%m-%d%H:%M:%S',景点。世界标准时间);
或
选择* 从gpsData,目击 在strftime('%Y-%m-%d%H:%M:%S',gpsData.UTC)<= strftime('%Y-%m-%d%H:%M:%S',景点。世界标准时间);
没有成功。目前,我正在执行以下操作:
选择*
FROM gpsData,目击事件
ORDER BY ABS(strftime('%Y-%m-%d%H:%M:%S',gpsData.UTC)-strftime('%Y-%m-%d%H:%M: %S',Sightings.UTC))ASC
我不知道它是否在工作,因为查询已经运行了一个半小时了……
如何修改我的陈述,以有效地获取所需信息?我尝试了其他地方提出的一些解决方案,但它们似乎对我不起作用。我对SQLite完全陌生。感谢您的帮助。