如何在流分析查询中引导填充零?

How can I lead pad zeros in a Stream Analytics Query?

在流分析查询中,我正在尝试将日期转换为简单的 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

这是一个simple thing in T-Sql, but I don't see any of the tools necessary to make this or any of the other tricks work to be present in the SA query language subset

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

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

例如我刚刚创建了一个名为dateFormat的user-defined函数如下:

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]