TDengine是否支持纳秒级时间戳?如需使用该功能应如何操作?
TDengine纳秒级时间戳相关问题解答
是否支持纳秒级时间戳
TDengine原生支持纳秒级时间戳,不需要额外开启付费功能或者修改源码,只需要在创建数据库的时候指定对应精度即可。
配置与操作方法
- 创建数据库时指定精度
时间精度是数据库级别的配置,创建后无法修改,需要建库时明确声明纳秒精度,执行命令:
除了CREATE DATABASE your_db_name PRECISION 'ns';ns(纳秒)之外,TDengine还支持ms(毫秒,默认值)、us(微秒)两种精度可选。 - 数据写入要求
写入数据时如果传入的是数字型时间戳,需要传入对应时间的纳秒级Unix时间戳(即1970-01-01 00:00:00 UTC到目标时间的总纳秒数);如果传入的是格式化时间字符串,TDengine会自动按照当前数据库的精度做转换,不需要额外处理。 - 查询相关操作
查询返回的原始时间戳默认是纳秒级Unix时间戳,如果需要转换为可读的时间格式,可以直接使用内置时间函数处理,例如FROM_UNIXTIME(ts)就可以直接把纳秒时间戳转换为yyyy-MM-dd HH:mm:ss.SSSSSSSSS格式的字符串。 - 使用注意事项
纳秒精度的时间戳单条会比毫秒精度多占用4字节存储空间,聚合计算的开销也会略高,如果你的业务场景没有强纳秒精度需求,更推荐使用毫秒或微秒精度来降低资源消耗。
内容的提问来源于stack exchange,提问作者bruce
相关产品推荐
相关产品推荐

