[英]SQLite: add DateTime and TimeSpan
我有一个包含 TimeFrames 的 SQLite 表。 每个 TimeFrame 都有(至少)一个 EndTime 和一个 Duration:
给定一些 DateTime 值 dt,查询在 dt 之前开始的所有时间帧。
SELECT ...
FROM
WHERE dt < TimeFrame.EndTime - TimeFrame.Duration
为了执行日期时间计算, SQLite 有一些日期和时间函数。 . 这有助于我执行 Where。
DateTime dt = ...
String dtText = DateTimeToSqlLiteFormat(dt); // yyyy-MM-dd HH:mm:ss.ttt
和 SQLite:
Select ... From ...
Where dtText < DateTime( EndTime, "-nnn.nnnn seconds")
其中nnn.nnnn
是 Duration 值的字符串表示形式。
所以我所要做的就是将列 Duration 转换为nnn.nnnn
。 由于 Duration 已经是它所代表的 TimeSpan 的两倍 TotalSeconds,我想这不会太难。
但是如何?
我不知道这是否仍然相关,但你需要反过来做。 使用strftime('%s', EndTime)
(或 julianday)将您的 EndDate 转换为 Unix 时间,然后从中减去持续时间:
Select ... From ...
Where dtText < strftime('%s', EndTime) - Duration
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.