查找SQLite或Python中格式为YYYY-MM-DDTHH-MM-SS.sssZ的日期时间戳之间的时差(以小时和分钟为单位)
我有一系列的时间戳,我需要找出时间的不同。问题是如何在适当的时候将日差计算在内。我可以在将数据添加到dataframes时尝试使用Python,也可以在分析数据时使用SQL。两种方法都有效 我用于测试的SQL代码:查找SQLite或Python中格式为YYYY-MM-DDTHH-MM-SS.sssZ的日期时间戳之间的时差(以小时和分钟为单位),python,sqlite,Python,Sqlite,我有一系列的时间戳,我需要找出时间的不同。问题是如何在适当的时候将日差计算在内。我可以在将数据添加到dataframes时尝试使用Python,也可以在分析数据时使用SQL。两种方法都有效 我用于测试的SQL代码: SELECT commentId, commentStamp, replyStamp, strftime('%H:%M:%SZ',(julianday(replyStamp) - julianday(commentStamp))) FROM time_table
SELECT commentId, commentStamp, replyStamp,
strftime('%H:%M:%SZ',(julianday(replyStamp) - julianday(commentStamp)))
FROM time_table
输出:
('AAAAA00000',
'2020-11-10T13:26:10.162Z',
'2020-11-10T13:35:37.292Z',
'12:09:27Z'),
('AAAAA11111',
'2020-11-09T18:48:03.073Z',
'2020-11-10T13:08:22.813Z',
'06:20:19Z'),
预期结果如下,只需几小时几分钟:
('AAAAA00000',
'2020-11-10T13:26:10.162Z',
'2020-11-10T13:35:37.292Z',
'00:09'),
('AAAAA11111',
'2020-11-09T18:48:03.073Z',
'2020-11-10T13:08:22.813Z',
'18:40'),
我真的找不到任何有效的方法。我尝试的所有方法都无法正确计算差异。来自:
函数的作用是:返回朱利安日——天数
自公元前4714年11月24日中午在格林威治(公历前)起
日历)
因此,查询中的差异是以天为单位的差异,必须乘以24*60*60
以秒为单位获得差异,并将其与strftime()
一起使用以时间为单位格式化(使用'unixepoch'
修饰符):
或者使用返回自1970-01-01以来的秒数的strftime('%s',…)
:
SELECT commentId, commentStamp, replyStamp,
strftime('%H:%M', strftime('%s', replyStamp) - strftime('%s', commentStamp), 'unixepoch') diff
FROM time_table
请参阅。结果:
发布您的预期结果。添加了预期结果。只需在每个部分的第一个和第二个时间戳之间花费数小时和数分钟,第二个时间戳的差值应该是18:20,而不是19:40。非常感谢!这正是我需要的。邮戳对我来说一直很吸引人。
SELECT commentId, commentStamp, replyStamp,
strftime('%H:%M', strftime('%s', replyStamp) - strftime('%s', commentStamp), 'unixepoch') diff
FROM time_table
> commentId | commentStamp | replyStamp | diff
> :--------- | :----------------------- | :----------------------- | :----
> AAAAA00000 | 2020-11-10T13:26:10.162Z | 2020-11-10T13:35:37.292Z | 00:09
> AAAAA11111 | 2020-11-09T18:48:03.073Z | 2020-11-10T13:08:22.813Z | 18:20