将Javascript&n;的Date.now()转换为Stream Analytics中的时间戳

时间:2016-08-08 08:17:40

标签: javascript json node.js azure azure-stream-analytics

我尝试使用我的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流分析中的时间戳?

3 个答案:

答案 0 :(得分:1)

@nobodykid,您可以使用Stream Analyics Query Languagetimebigint转换为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并没有使用它,只是一个想法)。