首页 > 解决方案 > Azure IoT 中心 sql 查询

问题描述

我正在尝试使用查询语言查询 IoT 中心设备双胞胎。我有以下代码片段不起作用。我没有得到任何结果。当我用一些硬编码日期替换 dt 时,我将获得设备列表。是否就像我无法使用此查询将变量传递给集线器?请帮我。

   var dt = new Date();
         dt.setDate( dt.getDate() - 4 );
         console.log(dt);


var query = registry.createQuery('SELECT * FROM devices where lastActivityTime > dt', 100);
var onResults = function(err, results) {
  if (err) {
    console.error('Failed to fetch the results: ' + err.message);
  } else {
    // Do something with the results
    results.forEach(function(twin) {
      console.log(twin.deviceId);
    });

    if (query.hasMoreResults) {
        query.nextAsTwin(onResults);
    }
  }
};

标签: azure-iot-hub

解决方案


您可以通过使用 JavaScript 模板字符串来实现您想要的 - 请注意示例中`'的使用:

var dt = new Date();
dt.setDate( dt.getDate() - 3);
var dateString = dt.toISOString();

var query = registry.createQuery(`SELECT * FROM devices WHERE lastActivityTime > '${dateString}'`, 100);

推荐阅读