У меня есть большая база данных SQLite3 с 30 таблицами, самой большой из которых является таблица данных GPS со строками, которые хранятся каждую секунду более или менее.Другие таблицы находятся в диапазоне 500-3000 записей каждая.Я пытаюсь извлечь из одной из таблиц все записи и связать их с координатами, широтой и долготой из таблицы GPS на основе соответствующей метки времени в формате гггг-мм-дд чч: мм: сс.сс, встречающейся в обеихстолы.Моя текущая строка:
SELECT * FROM gpsData, наблюдения, где strftime ('% Y-% m-% d% H:% M:% S', gpsData.UTC) = strftime ('% Y-%m-% d% H:% M:% S ', Sightings.UTC);
Это дает мне то, что мне нужно в разумные сроки.Единственная проблема состоит в том, что в таблице GPS у меня есть некоторые пропущенные значения, я полагаю, что GPS не имеет хорошего покрытия, и поэтому я получаю много записей со значениями NULL.Есть ли способ изменить мое утверждение, чтобы я мог найти точное совпадение или самое близкое, однако, назад во времени?
Я пробовал с:
SELECT * FROM gpsData, Sightings WHEREstrftime ('% Y-% m-% d% H:% M:% S', gpsData.UTC)> = strftime ('% Y-% m-% d% H:% M:% S', наблюдения.УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ);
или
SELECT * FROM gpsData, наблюдения ГДЕ strftime ('% Y-% m-% d% H:% M:% S', gpsData.UTC) <= strftime ('% Y-% m-% d% H:% M:% S ', Sightings.UTC);</p>
Безуспешно.В настоящий момент я запускаю следующее:
ВЫБРАТЬ *
ОТ gpsData, Прицельные наблюдения
ЗАКАЗАТЬ АБС (strftime ('% Y-% m-% d% H:% M:% S ', gpsData.UTC) - strftime ('% Y-% m-% d% H:% M:% S ', Sightings.UTC)) ASC
Не знаюзнать, работает ли он, потому что запрос выполнялся последние полтора часа ...
Как я могу изменить свое утверждение, чтобы получить то, что мне нужно, эффективным способом?Я попробовал несколько решений, предложенных в другом месте, но они, похоже, не работают для меня.Я совершенно новичок в SQLite.Спасибо за вашу помощь.