如何从 InfluxDB Node-RED 中获取特定时间段的数据

How to get data from a especif Time period in InfluxDB Node-RED

我正在尝试从 InfluxDB v1.x 中读取数据,但仅限于特定时间段内,示例:

获取 temper01 从 2021-11-09/14:00:00 到 2021-11-10/14:00:00 的值。

我知道这个代码是可行的:

"WHERE time >= '2021-11-09T14:00:00Z' AND time <= '2021-11-10T14:00:00Z'" 但我想知道是否可以使用变量而不是直接时间戳。

我试过这个代码:

msg.query = "SELECT time , Temper01, Temper02, Temper03 FROM "
+  global.get("ID_device1")
+ " WHERE time >= "
+   msg.payload;
+ " AND time <= '2021-11-18T00:00:00.000Z' " ;

但是 msg.payload 值并不重要,它只是从存储的第一个数据中获取数据,当我尝试单引号 msg.payload 时,我收到 invalid operation: time and *influxql.VarRef are not compatible" 错误消息。

假设 msg.paylaod 看起来像 2020-11-18T00:00:00.000Z 那么您没有引用要插入到查询中的时间字符串。

它应该是这样的:

msg.query = "SELECT time , Temper01, Temper02, Temper03 FROM "
+  global.get("ID_device1")
+ " WHERE time >= '"
+   msg.payload;
+ "' AND time <= '2021-11-18T00:00:00.000Z' " ;

区别在于第 3 行字符串末尾的 ' 和最后一行字符串开头的 '

直接比较工作版本和不工作的版本会显示这一点。