如何在 SQLite 中计算以毫秒为单位的最小时间间隔?好的,提供一些上下文,这是我的表的样子: link_budget 表
所以有这个时间列,我想发出一个请求,以毫秒为单位给出两个连续行之间的间隔。我不知道如何提出我的要求。有什么建议 ?
由于 SQLite 没有本地日期时间数据类型,而是强制您存储为字符串或数字,并且您选择了一个字符串,因此您需要将其转换为可以计算的内容。
您可以julianday为此使用该功能。
要计算两个值之间的差异,您只需执行以下操作:
SELECT julianday('2006-07-01 12:08:15.310')-julianday('2006-07-01 12:08:14.141')
Run Code Online (Sandbox Code Playgroud)
但是,这会给您带来天数的差异。一天包含 86400 秒,因此包含 86400000 毫秒,这给你:
SELECT (julianday('2006-07-01 12:08:15.310')-julianday('2006-07-01 12:08:14.141'))*86400000
Run Code Online (Sandbox Code Playgroud)
请注意,SQLite 内部使用的浮点类型的精度不足以使上述值准确,但它应该足够接近以提供毫秒精度。
例如,这个:
select (julianday('2006-07-01 12:08:14.141')-julianday('2006-07-01 12:08:14.140'))*(86400000)
Run Code Online (Sandbox Code Playgroud)
这应该给出 1 毫秒的差异给出了这个结果:
1.00582838058472
Run Code Online (Sandbox Code Playgroud)