2017-05-14 3 views
0

Ich brauche ein aggregiertes Datum so zu formatieren, dass es ein lesbares und sortierbares Format erzeugt. Ich bin eine Zeitreihe zu schaffen, die die Anzahl der Anfragen über einen Zeitraum von Tagen aggregiert den folgenden Code:Azure Application Insights: Formatieren von Datumsangaben (und Zahlen)

let us_date = (t:datetime) 
{ 
    strcat( getmonth(t - 8h), "-", dayofmonth(t - 8h)) 
}; 
requests 
| project timestamp, client_IP, local_date = us_date(timestamp) 
| where timestamp >= now() - 30d and timestamp <= now() + 1d 
| summarize uniqueUsers = dcount(client_IP) by usdate = us_date(timestamp) 
| order by usdate desc 

, die produziert:

enter image description here

Die Daten sind in Ordnung, aber aufgrund der Formatieren der Sortierreihenfolge ist deaktiviert.

Für diese richtig sortiert sollte wie 05-09 aussehen, aber ich sehe keine Möglichkeit, diese Art der Formatierung zu tun.

Bitte beachte, dass ich folgendes tun können, und die Daten in der richtigen Ordnung aber hässlich Format erhalten:

let us_date = (t:datetime) 
{ 
    strcat( getyear(t - 8h) , '-', getmonth(t - 8h), "-", dayofmonth(t - 8h)) 
}; 
requests 
| project timestamp, client_IP 
| where timestamp >= now() - 30d and timestamp <= now() + 1d 
| summarize uniqueUsers = dcount(client_IP) by usdate = bin(timestamp - 8h,1d) 
| order by usdate desc 

aber dies erzeugt sehr ausführliche Liste Ansicht und bettet auch die Zeit, in der Tabelle.

enter image description here

Irgendwelche Ideen, wie entweder die Zahlenformatierung Problem zu beheben, oder wie ein anderer Wert in der Abfrage zu erhalten, ohne zu erlauben, das Sortieren der Ergebnisse abwirft?

Antwort

0

a) Sie können project nach summarize ändern, um das Spaltenformat, den Spaltennamen oder die Spaltenreihenfolge zu ändern.

b) Sie können das Ergebnis von bin formatieren.

+0

Sie meinen 'project' Recht? Ja, das hat funktioniert, aber ich bekomme immer noch keine formatierte Liste, die richtig aussieht. Was ich wirklich will, ist etwas wie ein C# -String-Format 'yyyy-MM-dd' oder' n2' für Zahlen. Es scheint seltsam, dass etwas in dieser Richtung (oder zumindest "PADL"/"PADR" -Funktionen fehlen). –

+0

'Projekt', ja. Ich habe es korrigiert. – arboreal84

+0

Leider habe ich keine Einsichten mehr, mit denen ich spielen könnte, aber das war es, was ich damals gemacht habe. Wenn Sie Ihre aktualisierte Abfrage teilen, können wir vielleicht von dort aus gehen. – arboreal84

0

Ein bisschen hässlich, aber String-Parsing kann hier den Trick:

requests 
| project timestamp, client_IP 
| where timestamp >= now() - 30d and timestamp <= now() + 1d 
| summarize uniqueUsers = dcount(client_IP) by usdate = bin(timestamp - 8h,1d) 
| parse tostring(usdate) with year "-" shortDate "T" * 
| project shortDate, uniqueUsers** 
| order by shortDate desc 

Die Lösung in der Linie parse liegt - nur den Monat und Tag Teile des Datums unter

Verwandte Themen