如何在流分析查询中引导填充零?
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]
在流分析查询中,我正在尝试将日期转换为简单的 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]