如何将Apache IoTDB中的时间显示改为时间戳格式?
修改Apache IoTDB时间列显示为Long时间戳格式
1. CLI临时切换格式
在IoTDB的命令行界面(CLI)里,直接执行以下SQL命令就能立刻切换时间显示格式:
SET TIME_DISPLAY_FORMAT='epoch';
执行后,后续所有查询返回的time列都会以毫秒级Long类型时间戳展示。要是想改回原来的ISO格式,执行这条命令即可:
SET TIME_DISPLAY_FORMAT='yyyy-MM-dd''T''HH:mm:ss.SSSZ';
2. 代码查询时的两种处理方式
如果是通过JDBC等代码方式查询,有两种方案:
- 全局会话设置:在建立连接后先执行格式设置命令,后续查询都会生效
Statement stmt = connection.createStatement(); stmt.execute("SET TIME_DISPLAY_FORMAT='epoch'"); ResultSet rs = stmt.executeQuery("SELECT * FROM root.test.device"); // 此时从rs中获取的time字段值为Long类型
- 单查询转换:不想全局修改的话,直接在SQL里用
to_timestamp函数转换时间列
SELECT to_timestamp(time), temperature FROM root.test.device;
3. 全局永久配置修改
如果希望所有新会话默认都用Long时间戳显示时间,修改IoTDB的iotdb-common.properties配置文件:
找到time_display_format配置项,把值改成epoch:
time_display_format=epoch
保存配置后重启IoTDB服务,之后所有新连接的时间列都会默认显示为Long时间戳。
内容的提问来源于stack exchange,提问作者user22177617
相关产品推荐
相关产品推荐

