如何计算表中的时差HH:MM?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算表中的时差HH:MM?相关的知识,希望对你有一定的参考价值。

我正在研究sqlite中的航班日志。

“航班”表具有以下结构:

CREATE TABLE flights (event_id INT PRIMARY KEY, date TEXT, offblock TEXT, onblock TEXT, duration TEXT;

我的目标是找到一个可以插入“持续时间”列的声明,以便我在那里有飞行时间。

INSERT INTO flights VALUES (1, "2019-04-04", "12:00", "18:00", XXX);

持续时间的结果应该是06:00,如下所示:

SELECT duration from flights WHERE event_id = 1;

06:00

谁能给我一个工作提示如何以最简单的方式做到这一点?

非常感谢!

答案

你可以用strftime()time()这样做:

SELECT strftime('%H:%M', time(strftime('%s','18:00') - strftime('%s','12:00'), 'unixepoch'))

这导致:

06:00
另一答案

你想要做的事情非常复杂,因为你有一个表示时间的字符串,在sqlite中没有明确的类型。这很复杂,但有可能你可以做到以下几点:

- 首先从字符串中删除冒号:how to remove characters from a string in sqlite3 database?

- 然后将此字符串转换为int:Convert string to int inside WHERE clause of SQLITE statment

- 您需要分别在小时和分钟内执行此操作,因为整数显然是基于10而分钟是基于60,因此您不能简单地减去它们。您可以通过Substr(X,Y,Z)函数执行此操作:https://www.sqlite.org/lang_corefunc.html

- 然后你会算术减去最后 - 小时和分钟的初始时间。 https://www.w3resource.com/sqlite/arithmetic-operators.php

- 最后获取计算的小时数和分钟数,并在它们之间添加冒号(假设您需要相同的格式)。

就像我说的那样,它有点沉重..但是如果这种自动化从长远来看节省时间是可行的。这应该足以让你到那里。

以上是关于如何计算表中的时差HH:MM?的主要内容,如果未能解决你的问题,请参考以下文章

如何从两个纪元时间戳计算 hh:mm:ss 中 hh:mm:ss 的差异?

如何制作一个以 hh:mm:ss:ms 计算的 Swift 3.0 计时器

如何处理国际时间?

MySQL:获取平均时差?

如何在进行选择查询时将 YYYY-MM-DD HH:mm:ss 中的时间戳转换为 Hive 中的 YYYY-MM-DD HH:mm:ss.SSS?

如何结合铁定时器和moment-js来显示聚合物中的hh:mm:ss格式