日期之间的SQLite差异,以毫秒为单位

时间:2016-02-22 11:49:52

标签: sqlite date

如何在SQLite中计算最小时间间隔(以毫秒为单位)? 好的,给出一些背景, 这是我的表格的样子: link_budget table

所以有这个时间列,我想做一个请求,给我两个连续行之间的间隔,以毫秒为单位。 我不知道如何提出要求。 有什么建议吗?

1 个答案:

答案 0 :(得分:3)

由于SQLite没有本机日期时间数据类型,而是强制您以字符串或数字形式存储,并且您选择了一个字符串,因此需要将其转换为可以计算的值。

您可以使用julianday功能。

要计算两个值之间的差异,您只需执行此操作:

SELECT julianday('2006-07-01 12:08:15.310')-julianday('2006-07-01 12:08:14.141')

然而,这将为您提供的差异。一天包含86400秒,因此包含86400000毫秒,这样就可以了:

SELECT (julianday('2006-07-01 12:08:15.310')-julianday('2006-07-01 12:08:14.141'))*86400000

请注意,SQLite内部使用的浮点类型的精度没有足够的精度来使上述值准确,但它应该足够接近以提供毫秒精度。

例如,这个:

select (julianday('2006-07-01 12:08:14.141')-julianday('2006-07-01 12:08:14.140'))*(86400000)

这应该给出1毫秒的差异给出了这个结果:

1.00582838058472