如何计算表中的时差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 计时器
如何在进行选择查询时将 YYYY-MM-DD HH:mm:ss 中的时间戳转换为 Hive 中的 YYYY-MM-DD HH:mm:ss.SSS?