У меня есть таблица SqlLite, которая содержит таймфреймы. Каждый TimeFrame имеет (как минимум) EndTime и Duration:
- EndTime представляет конечный DateTime временного кадра; В SqlLite это строка в формате гггг-ММ-дд ЧЧ: мм: сс
- Длительность представляет временной интервал временного кадра; В SqlLite это двойное значение, представляющее TotalSeconds of Duration.
При заданном некотором значении DateTime dt запросить все таймфреймы, начавшиеся до dt.
SELECT ...
FROM
WHERE dt < TimeFrame.EndTime - TimeFrame.Duration
Для выполнения вычислений DateTime SqlLite имеет некоторые функции даты и времени. . Это помогает мне выполнить Where.
DateTime dt = ...
String dtText = DateTimeToSqlLiteFormat(dt); // yyyy-MM-dd HH:mm:ss.ttt
и SqlLite:
Select ... From ...
Where dtText < DateTime( EndTime, "-nnn.nnnn seconds")
, где nnn.nnnn
- строковое представление значения Duration.
Так Все, что мне нужно сделать, это преобразовать столбец Duration в nnn.nnnn
. Поскольку Duration уже представляет собой удвоенные значения TotalSeconds от TimeSpan, который он представляет, я думаю, это не будет слишком сложно.
Но как?