You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TDengine是否支持插入时间戳远早于当前时间的数据?

问题结论

这不是TDengine的bug,是默认数据库配置限制导致的。

报错原因

TDengine为了优化时序数据的写入、查询性能以及存储成本,默认对写入数据的时间戳范围做了约束:

  • 时间戳最早不能早于「当前时间减去数据库配置的KEEP参数值」,KEEP参数默认值为3650天(10年)
  • 时间戳最晚不能晚于「当前时间往后推10年」
    你尝试插入的1970年时间戳远早于默认的时间下限,因此触发了时间戳超出范围的报错。
    另外需要注意时间精度匹配问题:如果数据库创建时指定的时间精度是毫秒/微秒,你输入的数值1会被识别为1毫秒/1微秒,同样属于1970年的时间范围,也会触发同样报错。

解决方法

新建数据库场景

创建数据库时根据你的数据时间范围需求,指定足够大的KEEP参数,同时匹配你的时间戳精度:

# 示例:保留100年数据,时间精度为秒
CREATE DATABASE your_db_name KEEP 36500 PRECISION 's';

已有数据库场景

直接调整现有数据库的KEEP参数即可,注意该参数只能调大不能调小:

ALTER DATABASE your_db_name KEEP 36500;

调整完成后再执行插入语句即可成功写入1970年的时间戳数据。


内容的提问来源于stack exchange,提问作者GeorgeWill93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:24:06