如何在Stream Analytics查询中引导填充零?

时间:2018-03-05 20:49:51

标签: azure-stream-analytics

在Stream Analytics查询中,我尝试将日期转换为简单的ISO 8601仅限日期格式,如下所示:

CONCAT(
    c.IoTHub.ConnectionDeviceId, 
    '@', 
    CAST(DATEPART(year, EventProcessedUtcTime) as nvarchar(max)), 
    '-',
    CAST(DATEPART(month, EventProcessedUtcTime) as nvarchar(max)), 
    '-',
    CAST(DATEPART(day, EventProcessedUtcTime) as nvarchar(max))
) as partitionkey

这项工作正常,但它会产生如下日期:

2017-3-5

我更倾向于将日期设为零 - 填充,如下所示:

2017-03-05

这是T-Sql中的simple thing,但我没有看到任何必要的工具可以让这个或任何其他技巧在SA query language subset中出现。

有人知道解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:1)

根据您的要求,我假设您可以使用Azure Stream Analytics JavaScript user-defined functions

例如,我刚创建了一个名为dateFormat的用户定义函数,如下所示:

function main(dateStr) {
    var date=new Date(dateStr);                                  
    var mm = (date.getMonth()+1).toString();        
    var dd  = date.getDate().toString(); 
    return date.getFullYear().toString() + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
}

<强>用法

SELECT UDF.dateFormat(EventProcessedUtcTime) FROM [YourInputAlias]