Главная » Разборы

Время телеметрии в SQLite: явно задать формат, единицу и происхождение

Запросить

SQLite не имеет отдельного встроенного типа даты и времени. Документация описывает текстовые значения, юлианские дни и Unix timestamp. Для последнего исходная единица — секунды. Поэтому числовое поле без контракта нельзя автоматически считать ни секундами, ни миллисекундами, даже если результат внешне напоминает правдоподобную дату.

Модификатор auto пытается распознать числовой формат, но имеет документированную неоднозначность для первых 63 дней 1970 года. Если происхождение значения известно, явное указание формата надёжнее догадки. Смешение разных единиц в одном столбце затрудняет сортировку, фильтры диапазона и проверку задержки доставки.

Схема различает время измерения, время приёма и исходную отметку сообщения. Пользовательское представление в принятой зоне формируют отдельно, сохраняя первоначальные значения. Localtime и utc предполагают определённую исходную шкалу; их нельзя последовательно добавлять без понимания, в какой зоне уже находится значение.

В приёмке используют известные моменты времени, дробные секунды и задержанную доставку. Проверяют диапазонный запрос и вывод отчёта без изменения исходной отметки. Совпадающая дата на двух экранах не доказывает, что база сохранила верную единицу и смысл каждого timestamp.

Основание — SQLite official unversioned documentation snapshot; Download index observed 3.54.1, individual pages not version-tagged, разделы Overview; Time Values; auto/localtime modifiers. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Установленная библиотека, сборка, файловая система и база узла не проверялись. Это проектный сценарий; SQL и сервисные операции на реальных данных не выполнялись.

Все разборы

Весь каталог Motorola и аналогов — 13 позиций

Возимые и носимые станции, TETRA, PoC и Си-Би — всё, что держим на складе.