无法从连接的字符串中解析日期

时间:2021-01-22 22:04:38

标签: kql

我快要为这么简单的事情失去理智了。我想将字符串解析为日期时间,但它一直返回 null。

如果我执行 todatetime(strcat(2020,"-11-7")),它返回 null。 如果我做 todatetime("2020-11-7") 它会起作用。 我比较了两个字符串,它们是相等的。

这是我正在测试的代码:

let dateStr = strcat(2020,"-11-7");
let dateStr2 = "2020-11-7";
print dateStr == dateStr2 // True
print todatetime(dateStr) == todatetime(dateStr2) // False

知道为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:1)

您尝试将 strcat(2020,"-11-7") 转换为 datetime 失败,因为创建的字符串不是受支持的日期时间格式。请参阅 doc 中支持的格式列表。

但是,如果您尝试转换 strcat(2020,"-11-07")(注意 07 而不是仅 7),那么它将产生所需的结果。

"2020-11-7" 转换为 datetime 确实有效(如您所见),即使这不是受支持的格式,但为了向后兼容(但建议在任何情况下都不要使用不受支持的格式)。

相关问题