0

我有一个以纳秒为单位的纪元时间戳,如下所示:1634713905326784000 我正在使用 DB Browser for SQLite 将其转换为时间戳,如下所示:

STRFTIME('%Y-%m-%d %H:%M:%f', timestamp/1000000000,'unixepoch') as timestamp

因为我除以 1000000000,所以我在时间戳的最后部分只得到 0.000,如下所示:

2021-10-20 07:11:45.000
2021-10-20 07:11:45.000
2021-10-20 07:11:45.000
2021-10-20 07:11:45.000

可以提取纳秒,如下所示:

CAST ((timestamp % (timestamp/1000000000))/1000000 as NUMERIC) as nsec

这会给我一个只有纳秒的新列

326
372
386
407
430

我想获得完整的时间,包括一列中的小数,这样当我绘制数据时,我不会在每一秒开始时将它们集中起来,如下所示:

2021-10-20 07:11:45.326
2021-10-20 07:11:45.372
2021-10-20 07:11:45.386
2021-10-20 07:11:45.407
2021-10-20 07:11:45.430

这可能吗?谢谢

4

1 回答 1

0

您非常接近使用STRFTIME. 它将获得的值转换为日期时间,但由于您使用的是整数数学,所以它没有得到小数时间。

SELECT 
    STRFTIME('%Y-%m-%d %H:%M:%f', CAST(timestamp AS float) / 1e9,'unixepoch') AS timestamp

这将做你想要的。首先将时间戳转换为浮点值,然后除以 10 9将值转换为 unix 纪元。

于 2021-11-05T00:26:16.523 回答