【问题标题】:How to query for time delta in minutes?如何以分钟为单位查询时间增量?
【发布时间】:2022-11-18 05:47:25
【问题描述】:
我试图在两次之间以分钟为单位获取时间增量。查询返回不正确的时间增量:
time_delta 应该分别是 133 和 90。
SELECT arrival_time, discharge_time
,STRFTIME("%H%M", discharge_time)-STRFTIME("%H%M", arrival_time) AS time_delta
FROM table;
【问题讨论】:
标签:
sql
sqlite
datetime
date-arithmetic
【解决方案1】:
您的查询不起作用,因为它将日期转换为细绳表示(格式为%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 中所述。