我正在尝试获取两个时间之间的时间增量(以分钟为单位)。查询返回了错误的时间增量:
time_delta应该分别为133和90。
time_delta
SELECT arrival_time, discharge_time ,STRFTIME("%H%M", discharge_time)-STRFTIME("%H%M", arrival_time) AS time_delta FROM table;
qojgxg4l1#
您的查询不起作用,因为它将日期转换为 * 字符串 * 表示形式(格式为%H%M),然后尝试减去这两个字符串-这并不符合您的预期。相反,您可以将日期转换为unix纪元,这样就可以得到以秒为单位的时差:
%H%M
select arrival_time, discharge_time, unixepoch(discharge_time) - unixepoch(arrival_time) as time_delta_in_seconds from mytable;
unixepoch()是strftime('%s', ...)的语法捷径,如the SQLite documentation中所述。
unixepoch()
strftime('%s', ...)
1条答案
按热度按时间qojgxg4l1#
您的查询不起作用,因为它将日期转换为 * 字符串 * 表示形式(格式为
%H%M
),然后尝试减去这两个字符串-这并不符合您的预期。相反,您可以将日期转换为unix纪元,这样就可以得到以秒为单位的时差:
unixepoch()
是strftime('%s', ...)
的语法捷径,如the SQLite documentation中所述。