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