首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离时间戳还有整整几个小时?

离时间戳还有整整几个小时?
EN

Stack Overflow用户
提问于 2019-07-07 14:52:10
回答 3查看 305关注 0票数 1

如何从sqlite中选择只包含整个时间的条目,其中日期作为时间戳?

以下是DB的摘录:

代码语言:javascript
运行
复制
 Temper Timestamp   Converted date (only for debugging)
 24.13  1562493806      07/07/2019-12:03
 24.10  1562493746      07/07/2019-12:02
 24.13  1562493686      07/07/2019-12:01
 24.13  1562493626      07/07/2019-12:00
 24.13  1562493566      07/07/2019-11:59
 24.13  1562493506      07/07/2019-11:58

以及SELECT语句的期望输出:

代码语言:javascript
运行
复制
24.13 - 1562493626 - 07/07/2019-12:00

我尝试使用timestamp % 60 = 0,但是上面的所有条目都返回mod = 26,而不是0

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-07 14:58:05

得到26而不是0的原因是时间戳也包含秒。

将UNIX时间戳转换为日期时间字符串(没有秒),然后检查分钟组件是否为:00

代码语言:javascript
运行
复制
SELECT *
FROM tablename
WHERE strftime('%d-%m-%Y %H:%M', datetime(timestamp, 'unixepoch')) LIKE '%:00'

我想你知道你的预期结果并不是一个小时,因为它包含26秒。

只有当你省略了秒的时候,它才被认为是一个小时。

编辑

检查这是否更快:

代码语言:javascript
运行
复制
SELECT *
FROM tablename
WHERE (timestamp - (timestamp % 60)) % 3600 = 0

或更好:

代码语言:javascript
运行
复制
SELECT *
FROM tablename
WHERE (timestamp / 60) % 60 = 0
票数 2
EN

Stack Overflow用户

发布于 2019-07-07 19:59:01

继续解释26 -这很可能是由于UTC的闰秒-它目前是在+26。使用原始的post值,我假定时间戳列是以秒为单位的--但是由于时间通常以毫秒来处理,所以我将每个值乘以1000:

因此,将1562493806000转换为UTC时间和日期:

代码语言:javascript
运行
复制
Sun Jul 07 2019 10:03:26

你所有的价值观都是这样。所以,你的时间戳的来源很可能包括闰秒,或者如果你的意图是一个确切的时间,就没有解释它们。

票数 2
EN

Stack Overflow用户

发布于 2019-07-07 15:51:19

多亏了@forpa,我成功地修正了公式。这里的主要问题是我没有考虑时间戳中的秒数。

因此,我检查了这些日期的秒数,并意识到我的示例永远不会以:00结尾,而总是以:26:27结尾。因此,我调整了公式,在几秒钟内考虑了这种容限:

代码语言:javascript
运行
复制
SELECT *
FROM tablename
WHERE timestamp % 3600 < 60

选择的结果是:

代码语言:javascript
运行
复制
23.38   1558008027   2019/05/16      14:00:27
23.25   1558004427   2019/05/16      13:00:27
23.06   1558000827   2019/05/16      12:00:27
22.88   1557997227   2019/05/16      11:00:27
22.94   1557993626   2019/05/16      10:00:26
23.13   1557990026   2019/05/16      09:00:26
23.19   1557986426   2019/05/16      08:00:26

非常感谢,@forpa

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56923228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档