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

问题描述 投票:0回答:1

在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中出现。

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

azure-stream-analytics
1个回答
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]
© www.soinside.com 2019 - 2024. All rights reserved.