SQL 将以纳秒为单位的 unixepoch 时间转换为人类可读时间的查询
SQL Query to convert unixepoch time in nanoseconds to human readable time
我有一个以纳秒为单位的纪元时间戳,如下所示:1634713905326784000
我正在使用 DB Browser for SQLite 将其转换为时间戳,如下所示:
STRFTIME('%Y-%m-%d %H:%M:%f', timestamp/1000000000,'unixepoch') as timestamp
因为我除以 1000000000,所以我只在时间戳的最后部分得到 .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
这可能吗?谢谢
您对 STRFTIME
的使用非常满意。它会将获得的值转换为日期时间,但由于您使用的是整数数学,因此它没有获得小数时间。
SELECT
STRFTIME('%Y-%m-%d %H:%M:%f', CAST(timestamp AS float) / 1e9,'unixepoch') AS timestamp
这会做你想做的。首先将时间戳转换为浮点值,然后除以 109 将值转换为 unix 纪元。
我有一个以纳秒为单位的纪元时间戳,如下所示:1634713905326784000 我正在使用 DB Browser for SQLite 将其转换为时间戳,如下所示:
STRFTIME('%Y-%m-%d %H:%M:%f', timestamp/1000000000,'unixepoch') as timestamp
因为我除以 1000000000,所以我只在时间戳的最后部分得到 .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
这可能吗?谢谢
您对 STRFTIME
的使用非常满意。它会将获得的值转换为日期时间,但由于您使用的是整数数学,因此它没有获得小数时间。
SELECT
STRFTIME('%Y-%m-%d %H:%M:%f', CAST(timestamp AS float) / 1e9,'unixepoch') AS timestamp
这会做你想做的。首先将时间戳转换为浮点值,然后除以 109 将值转换为 unix 纪元。