SqlLite: добавить DateTime и TimeSpan - PullRequest
0 голосов
/ 20 января 2020

У меня есть таблица 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, который он представляет, я думаю, это не будет слишком сложно.

Но как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...