TDengine jdbc 时区

Posted

技术标签:

【中文标题】TDengine jdbc 时区【英文标题】:TDengine jdbc timezone 【发布时间】:2021-07-29 09:53:27 【问题描述】:

我使用下面的代码来创建时区重新配置的连接。

        operties properties = new Properties();
        properties.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC+8");
        Connection connDefault = DriverManager.getConnection("jdbc:TAOS://" + host + ":0/", properties);

然后我用connDefault创建了一个语句,用这个语句插入和选择数据。

insert into meters values('2021-07-29 00:00:00', 'taosdata');
select * from meters ;

但是java代码查询结果是

ts=2021-07-29 16:00:00.0

有 16 小时的间隔。虽然我预计查询结果与插入时间“2021-07-29 00:00:00”相同。 更何况db中存储的时间是这样的

   ts       |              name              

1627545600000 |淘数据

查询正常,集合中有 1 行 (0.008616s)

有人可以帮忙找出原因吗? 另外,我在tdengine的官网上发现时区总是设置为“utc-8”,有人知道那个时区在哪里吗?

  Properties connProps = new Properties();
  connProps.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
  connProps.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
  connProps.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
  Connection conn = DriverManager.getConnection(jdbcUrl, connProps);

【问题讨论】:

【参考方案1】:

与其他数据库软件(例如 PostgreSQL)一样,TDengine 使用 Posix 时区规范,这意味着偏移量与 ISO 8601 标准相反。

【讨论】:

以上是关于TDengine jdbc 时区的主要内容,如果未能解决你的问题,请参考以下文章

tdengine jdbc连接报错: Unable to resolve FQDN

在循环中将数据插入 TDengine 时 jdbc 驱动程序挂起

TDengine的java原生接口TSDBDriver连接错误

tdengine jdbc restful接口返回值最大只有10240条

让你全面了解TDengine

让你全面了解TDengine