Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找SQLite或Python中格式为YYYY-MM-DDTHH-MM-SS.sssZ的日期时间戳之间的时差(以小时和分钟为单位)_Python_Sqlite - Fatal编程技术网

查找SQLite或Python中格式为YYYY-MM-DDTHH-MM-SS.sssZ的日期时间戳之间的时差(以小时和分钟为单位)

查找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

我有一系列的时间戳,我需要找出时间的不同。问题是如何在适当的时候将日差计算在内。我可以在将数据添加到dataframes时尝试使用Python,也可以在分析数据时使用SQL。两种方法都有效

我用于测试的SQL代码:

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