我正在试验InfluxDB for timeseries数据存储解决方案,在使用不同时区的InfluxDB时遇到了问题。
本质上,我使用UTC时间戳将所有数据点写入InfluxDB,但在查询中,使用服务器的本地时区指定时间戳范围将非常方便(特别是对于测试)。
有人知道如何在InfluxDB中实现这一点吗?
发布于 2015-01-27 09:21:50
你可以在查询之前或之后计算时区到你身边的Influxdb,另一个我看不到的解决方案。顺便说一句,到处使用utc时区这真的是一个很好的决定,计算到时区你只需要在最后一点。
发布于 2020-01-15 07:57:38
考虑到displaying the time in a specified timezone isn't possible,我也不认为可以为解释查询中的时间值设置时区。
最好的做法是在每个时间值中指定格林尼治标准时间的偏移量,并在查询的末尾添加匹配的tz('...'),以显示所需时区的时间。
SELECT * FROM measurement
WHERE time >= '2020-01-10T23:45:56-04:00'
AND time < '2020-01-10T23:45:59-04:00'
tz('America/New_York')发布于 2018-04-12 11:43:35
我住在太平洋的另一端,我使用python将数据放入influxdb中。有一次,我非常渴望你的问题的答案,我放弃了寻找,因为官员没有提供实现这一点的方法。因此,当我将数据放入influxdb时,我会将我的时间戳减少28800。:)当我需要查询时,我会做一些补偿工作,比如:
def fab_querytime(intime):
if isinstance(intime,basestring) and len(intime) == 12:
# my query time args like 201804061200
_t = arrow.get(intime,'YYYYMMDDHHmm')
_t = _t.replace(hours=-8)
return fab_querytime(_t)
if isinstance(intime,arrow.arrow.Arrow):
_str = intime.format('YYYY-MM-DDTHH:mm:ss') + '.000Z'
return str(_str)https://stackoverflow.com/questions/28160462
复制相似问题