sqlite 如何查询以分钟为单位的时间增量?

30byixjq  于 2022-11-24  发布在  SQLite
关注(0)|答案(1)|浏览(172)

我正在尝试获取两个时间之间的时间增量(以分钟为单位)。查询返回了错误的时间增量:

time_delta应该分别为133和90。

SELECT arrival_time, discharge_time
    ,STRFTIME("%H%M", discharge_time)-STRFTIME("%H%M", arrival_time) AS time_delta
FROM table;
qojgxg4l

qojgxg4l1#

您的查询不起作用,因为它将日期转换为 * 字符串 * 表示形式(格式为%H%M),然后尝试减去这两个字符串-这并不符合您的预期。
相反,您可以将日期转换为unix纪元,这样就可以得到以秒为单位的时差:

select arrival_time, discharge_time,
    unixepoch(discharge_time) - unixepoch(arrival_time) as time_delta_in_seconds
from mytable;

unixepoch()strftime('%s', ...)的语法捷径,如the SQLite documentation中所述。

相关问题