我尝试将进水b作为一个码头容器运行。我用的是码头作曲:
influxdb:
image: influxdb:1.7.7-alpine
ports:
- "8083:8083"
- "8086:8086"
- "8090:8090"
volumes:
- ./influxdb-data:/var/lib/influxdb
networks:
- mynet
expose:
- "8086"
environment:
TZ: Europe/Prague问题是时区。我不知道如何在本地时区启动InfluxDB,在这里您可以看到问题:
[michal@motoko ~]$ LC_ALL=C date
Fri Aug 23 07:38:44 CEST 2019
[michal@motoko ~]$ LC_ALL=C influx -host 'localhost'
Connected to http://localhost:8086 version 1.7.7
InfluxDB shell version: 1.7.7
> use test Using database test
> insert test value=4
> precision rfc3339
> select * from test
name: test
time value
---- ----
2019-08-23T05:39:09.017460215Z 4
>如您所见,我的机器上的实时时间是"07:38:44“,而数据库中存储的时间戳是"05:39:09”。我在UTC+2时区。
码头中的InfluxDB能在我的本地时区运行吗?我尝试过设置TZ变量,但是InfluxDB可能需要/etc/timezone。我还没有找到这方面的InfluxDB配置参数。
还是我需要在每个查询中使用tz()?这样做是正确的:
> select * from test tz('Europe/Prague')
name: test
time value
---- -----
2019-08-23T07:39:09.017460215+02:00 4发布于 2019-08-28 13:49:51
正如注释中提到的,默认情况下,InfluxDB时区是不可变的。但是,正如您提到的,您可以使用tz()命令来设置时区。
一个可能的解决方案是将您的时区存储在InfluxDB上,并在查询中使用它。
发布于 2022-07-08 00:33:16
在InfluxDB中,以纳秒精度Unix时间为单位的数据点的时间戳。时间戳是行协议中可选的。如果没有为数据点指定时间戳,InfluxDB将在UTC中使用服务器的本地纳秒时间戳。因此,当您插入数据时,没有指定时间戳。数据的时间戳是机器上的实时时间。但你可以试着:
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] [LIMIT_clause] [OFFSET_clause] [SLIMIT_clause] [SOFFSET_clause] tz('<time_zone>')tz()子句返回指定时区的UTC偏移量。
或者您只需更改码头容器的默认设置即可。
发布于 2022-06-28 19:58:47
InfluxDB 2.0+
在停靠-撰写中插入以下内容:
environment:
- TZ=Europe/Prague然后在容器内部检查变量TZ是否存在并更改日期。若要检查,请连接到容器docker exec -it influxdb-container bash和
date
Tue Jun 28 21:57:31 CEST 2022https://stackoverflow.com/questions/57620589
复制相似问题