Influxdb 如何在XDB中存储日期

Influxdb 如何在XDB中存储日期,influxdb,Influxdb,我需要开发一个XDB时间序列。时间序列需要包含以下信息: 时间-记录数据的时间。这将使用XDB时间字段 值-时间序列的值。一个简单的整数 日期-与值关联的单独日期。此日期与“时间”字段无关。它将用于帮助缩小查询范围 我目前的思路是将上述“日期”字段保存为时间序列中的一个单独的“列”,以便使用“where”子句过滤使用该日期的数据。然而,我正在为如何表现这一点而挣扎。XDB是否支持任何类型的日期或日期/时间字段?对于“时间”字段,它似乎只使用毫秒。但是,如果我尝试在具有不同名称的字段中使用相同

我需要开发一个XDB时间序列。时间序列需要包含以下信息:

  • 时间-记录数据的时间。这将使用XDB时间字段
  • 值-时间序列的值。一个简单的整数
  • 日期-与值关联的单独日期。此日期与“时间”字段无关。它将用于帮助缩小查询范围
我目前的思路是将上述“日期”字段保存为时间序列中的一个单独的“列”,以便使用“where”子句过滤使用该日期的数据。然而,我正在为如何表现这一点而挣扎。XDB是否支持任何类型的日期或日期/时间字段?对于“时间”字段,它似乎只使用毫秒。但是,如果我尝试在具有不同名称的字段中使用相同的方法,则正常时间查询不起作用。例如:

select * from myseries where time > now() - 1d
上面的查询可以正常工作

vs

此查询将失败并出现错误,因为它似乎不知道如何将“日期”视为时间值


在这种情况下,是否有更好的日期表示法?

XDB数据类型只能是浮点数、整数、布尔或字符串中的一种。
time
字段是一个特殊的例外

对于日期字段,可以使用表示从历元开始计数的整数。但是,像now()这样方便的函数似乎不适用于此(使用v0.13):

now()测试它

给出:

name: test_dates

time                    date_int                desc 
1473404302801938064     1573405622000000000     years from now
1473404315927493772     1373405661000000000     years ago
name: test_dates

time                    date_int                desc
1473462286404084162     1573405622000000000     years from now
1473462286408231540     1373405661000000000     years ago
以及:

似乎每个
date\u int
在某种程度上都大于或小于
now()

因此,如果使用整数,则比较不是语法错误,但不是我们希望的方式

解决这个问题的一种方法是在前端应用程序中创建自己的日期到整数的转换。那么前端的日期比较就是XDB中的整数比较。笨重,但这些是我们拥有的数据类型

InfluxDB中存储的日期可以是基于单个历元的整数,也可以在InfluxDB中存储年、月、日的单独整数字段。在后一种情况下,查询更大、更慢,但更易于阅读和调试

祝你好运

select * from test_dates where date_int > now()
name: test_dates

time                    date_int                desc 
1473404302801938064     1573405622000000000     years from now
1473404315927493772     1373405661000000000     years ago
select * from test_dates where date_int < now()
name: test_dates

time                    date_int                desc
1473462286404084162     1573405622000000000     years from now
1473462286408231540     1373405661000000000     years ago