簡體   English   中英

在 Azure monitor/log/analytics 中將 UTC 'TimeGenerated' 轉換為本地時間,當使用“summarize by”時

[英]Convert UTC 'TimeGenerated' to local time in Azure monitor/log/analytics, when using "summarize by"

我有這個簡單的查詢

MyLog
| summarize  avg(executionTimeInMS_d) by bin(TimeGenerated, 5min)

我希望摘要采用我當地的時區,而不是 UTC。 這不起作用:

MyLog
| summarize  avg(executionTimeInMS_d) by bin(TimeGenerated-5, 5min)

這可以做到嗎?

datetime值采用 UTC。

如果您知道時區偏移量(在您運行查詢時),您可以將其減去/添加到您的datetime值,如下所述: https : //docs.microsoft.com/en-us/azure/kusto/query/日期時間跨度算術

例如: print now() - 7h

App Insights 查詢頁面中現在有一個“顯示時區”設置。 這會將時間戳轉換為選定的時區。 它還將在時間戳列標題中顯示時區。

僅當您直接輸出時間戳時,這似乎才有效。 如果您應用任何操作,它將恢復為 UTC。

最好使用datetime_utc_to_local() function 進行轉換。 通過這種方式,您可以在查詢中動態處理夏令時,而無需依賴 UI。

AzureDiagnostics
| extend CentralTime = datetime_utc_to_local(TimeGenerated, "US/Central")

您可以通過減去/添加與 UTC 不同的時間來做到這一點。 例如,轉換為 EST。 我從 UTC 的TimeGenerated中減去 5h。

AppServiceConsoleLogs
| extend EasternTime = TimeGenerated - 5h
| sort by EasternTime desc
| project Level, EasternTime, ResultDescription

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM