【问题标题】:Unix time convert to Date in Azure stream analyticsUnix 时间在 Azure 流分析中转换为日期
【发布时间】:2016-04-12 16:47:37
【问题描述】:

我正在使用流分析来实时处理一些 RFID 数据。来自 RFID 阅读器的事件作为输入发送到事件中心。现在我面临一个问题,事件中的时间是 UNIX 时间格式,看起来像“TimeStamp”:1460471242.22402,“当我测试查询时很奇怪(不是开始工作,而是使用输入中的示例数据), UNIX 时间更改为 "2016-04-12T14:48:00.0000000Z" ,但是当我启动 SA 作业时,它失败并说“时间戳”列不符合 ISO 8601 标准。有没有在不更改输入原始数据的情况下,如何将 UNIX 时间转换为 SA 中的标准日期格式? 我的查询很简单,例如: 选择 EPCValue, Antenna, System.TimeStamp AS 时间 进入 数据输出 从 按TimeStamp的数据输入时间戳

【问题讨论】:

    标签: azure azure-stream-analytics


    【解决方案1】:

    请查看此页面中的示例。它描述了如何将 UNIX 时间转换为 SQL 日期时间格式 https://msdn.microsoft.com/en-us/library/mt573293.aspx

    【讨论】:

    • 感谢您的提示,我已经尝试过了,但它不起作用,我将查询更改为:SELECT System.Timestamp as Time, Antenna FROM datainput TIMESTAMP BY DATEADD(millisecond, epochtime, ' 1970-01-01T00:00:00Z')。错误消息是“由于不正确的时间戳而丢弃事件。流分析仅支持日期时间值的 ISO8601 格式”你知道吗?我哪里做错了吗?
    • 我刚刚意识到 DATEADD 只能使用整数类型作为参数的限制。可以请确保您的数据是整数类型吗?我们将进行修复以使错误消息更加具体,并且我们将研究更改 DATEADD 以接受浮点参数。
    • 您也可以将其用作临时解决方法,在流分析中将值转换为整数:SELECT System.Timestamp as Time, Antenna FROM inputeh TIMESTAMP BY DATEADD(millisecond, CAST(CAST(epochtime AS float)作为 bigint), '1970-01-01T00:00:00Z')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2014-05-06
    • 2015-02-09
    • 1970-01-01
    • 2020-12-23
    • 2016-04-24
    相关资源
    最近更新 更多