【问题标题】:converting Javascript's Date.now() into timestamp in Stream Analytics将 Javascript 的 Date.now() 转换为流分析中的时间戳
【发布时间】:2016-08-08 08:17:39
【问题描述】:

我尝试通过在我的 Raspberry Pi 中使用 Node.js 和在我的 Azure IoT Hub 中使用 Azure Stream Analytics 来收集压力值。我使用此代码将数据作为 JSON 文件发送到 IoT 中心:

var data = JSON.stringify({ 
               deviceId: "myRaspi10",
               pressureVal: value, 
               time:Date.now() 
           });

当我检查控制台时,这是发送到集线器的内容

{
    "deviceId":"myRaspi10",
    "pressureVal":39,
    "time":1470642749428
}

如何在 Azure 流分析中将 time 值转换为时间戳?

【问题讨论】:

  • 尝试发送new Date() 而不是Date.now()。它将生成类似“2016-08-08T08:22:34.905Z”的字符串输出,Azure 流分析可能会将其视为日期。 (虽然没用过,只是一个想法)。
  • @AndrewSklyarevsky 可以,目前正在检查 SO 文档中的日期部分。您是否知道如何将 Date() 简化为仅时间,例如“12.34.56.789”?
  • 在 SO 上查看不同问题的答案:stackoverflow.com/a/16426519/894973
  • 我尝试了各种方法,@AndrewSklyarevsky 的回答是最有帮助的。介意您为此创建一个答案吗?所以我可以投票
  • 哦,很酷,我实际上并没有使用 Azure 流分析,但很高兴这个想法对您有所帮助。

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


【解决方案1】:

@nobodykid,您可以使用Stream Analyics Query Languagetimebigint 转换为datetime,如下所示。

CAST(time AS datetime)

请参考内置CAST函数和supported data types进行转换。

【讨论】:

    【解决方案2】:

    尝试发送new Date() 而不是Date.now()。它将产生一个类似"2016-08-08T08:22:34‌​.905Z" 的字符串输出,Azure 流分析可能会将其视为日期。 (虽然没用过,只是一个想法)。

    【讨论】:

      【解决方案3】:

      根据 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

      【讨论】:

        猜你喜欢
        • 2017-04-30
        • 2021-03-14
        • 2021-03-05
        • 2013-02-08
        • 2016-08-13
        • 2010-10-25
        • 2015-09-08
        相关资源
        最近更新 更多