tdengine避坑(一)时间查询
开发语言java
一、客户端设置的时区需要与server端一致
Properties connProps = new Properties(); connProps.setProperty(TSDBDriver.PROPERTY_KEY_USER, username); connProps.setProperty(TSDBDriver.PROPERTY_KEY_PASSWORD, password); 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"); return DriverManager.getConnection(url, connProps);
设置时区为 UTC-8
二、查询语句
查询时间格式不可以是: yyyy-MM-dd HH:mm:ss,查询出是时间是错误的
select _wstart, _wend, SUM(current) current from meters where ts > '2023-05-28 11:05:45' and ts < '2023-05-29 11:05:45' INTERVAL(60m) 05-29 11:05:45' INTERVAL(60m) FILL(VALUE,0.0);
正确的时间格式是:2023-05-29T00:00:00+0800
java写法:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
注意:这里的T需要加引号,不然会报错,+0800会自己加上去
select _wstart, _wend, SUM(current) current from meters where ts > '2023-05-29T00:00:00+0800' and ts < '2023-05-29T23:59:59+0800' INTERVAL(60m) FILL(VALUE,0.0);
这样查询出的时间为正确的时间。
发表评论: