我尝试使用我的Azure IoT Hub中的Raspberry Pi和Azure Stream Analytics中的Node.js来收集压力值 . 我使用以下代码将数据作为JSON文件发送到IoT Hub:
var data = JSON.stringify({
deviceId: "myRaspi10",
pressureVal: value,
time:Date.now()
});
当我检查控制台时,这是发送到Hub的内容
{
"deviceId":"myRaspi10",
"pressureVal":39,
"time":1470642749428
}
如何将 time
值转换为Azure流分析中的时间戳?
3 回答
尝试发送
new Date()
而不是Date.now()
. 它会产生一个像"2016-08-08T08:22:34.905Z"
这样的字符串输出,这可能是Azure Stream Analytics将其视为日期 . (虽然没有使用它,只是一个想法) .@nobodykid,您可以使用Stream Analyics Query Language将
time
从bigint
转换为datetime
,如下所示 .请参阅buildin CAST函数和supported data types进行转换 .
根据Azure流分析日期类型引用https://msdn.microsoft.com/en-us/library/azure/dn835065.aspx datetime表示为符合ISO 8601标准的转换为日期时间的字符串 .
使用javascript Date对象并调用toISOString()https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString