Datumsangaben mit Liquid formatieren

In einigen Situationen kann es erforderlich sein, die Art und Weise zu ändern, wie Looker Datumsangaben formatiert.

Wenn Sie beispielsweise Explores und Dashboards für Benutzer in Europa erstellen, sollten alle Datumsangaben, die nur numerisch sind, in der Reihenfolge Tag-Monat-Jahr angezeigt werden. Der 7. Juni 2019 sollte beispielsweise als 07/06/2019 oder Jun 07, 2019 formatiert werden. Im Standardformat von Looker wird das Datum als 2019-06-07 gerendert. Sie können zwar SQL-Funktionen wie DATE_FORMAT() verwenden, um ein Datumsformat zu ändern, aber Sie möchten möglicherweise nicht alles in reinen SQL-Code schreiben.

Liquid im Parameter html verwenden

Sie können die flüssige Formatierung im Parameter html einer Dimension verwenden, um das Format aller Felder mit einem gültigen Datumsformat zu ändern. Da Liquid ein gültiges Datum erwartet, empfiehlt es sich, die Zeiträume aus einer vorhandenen Dimensionsgruppe zu verwenden. Die Nummern für Woche oder Monat können nicht geändert werden, da sie als Ganzzahlen zurückgegeben werden.

Sie können beispielsweise ${created_date} so formatieren, dass er als Aug 23 22 anstelle der Looker-Standardeinstellung 2022-08-23 gerendert wird:


  dimension: date_formatted {
    sql: ${created_date} ;;
    html:{{ rendered_value | date: "%b %d, %y" }};;
  }


Das Format für die Stringsyntax "%b %d, %y" ist mit strftime identisch.

Da für den Parameter html die Liquid-Formatierung verwendet wird, ändert sich der ursprüngliche Wert des Zeitraums nicht, sondern nur die Art und Weise, wie der Wert für den Nutzer gerendert wird. Dadurch wird sichergestellt, dass sich die Reihenfolge, in der Datumsangaben in einer Abfrage angezeigt werden, nicht ändert.

Nachfolgend finden Sie einige weitere Beispiele, die Sie verwenden können. Eine ausführlichere Referenz zu den verfügbaren Formaten finden Sie unten auf dieser Seite.

Voreinstellung Beispiel
%m/%d/%Y 05.06.2013
%A, %B %e, %Y Mittwoch, 5. Juni 2013
%b %e %a 5. Juni Mi

Beispiel

Im folgenden Beispiel für eine explorative Datenanalyse sind Datum der Artikelbestellung und Wochen mit Bestellungen unterschiedlich formatiert und unter dem Gruppenlabel Erstellungsdatum organisiert, um eine Datumsdimension in der Auswahl der explorativen Datenanalysefelder zu simulieren.

Anhand der benutzerdefinierten Formatierung sehen Nutzer, welches Datum und welche Wochennummer des Jahres den größten Werten unter Anzahl der Artikel in absteigender Reihenfolge entsprechen.

Weitere Informationen zur Verwendung des group_label-Parameters finden Sie auf der Dokumentationsseite zu group_label.

Eine Explore-Abfrage zeigt Ergebnisse der benutzerdefinierten Datumsformatierung für Bestellpositionsdatum und Woche der Bestellpositionen in absteigender Reihenfolge an, sortiert nach Anzahl der Bestellelemente, Anzahl der Elemente.

LookML

Im Explore-Beispiel wird der folgende LookML-Code verwendet:



# The original dimension group - hidden so that users can only choose from the formatted dates date and week timeframes
  dimension_group: created {
    hidden: yes
    type: time
    timeframes: [
      raw,
      time,
      date,
      hour,
      hour_of_day,
      time_of_day,
      week,
      month,
      quarter,
      year
    ]
    sql: ${TABLE}.created_at ;;
  }

# The customized timeframes, organized in the Explore field picker under the group label Created date
  dimension: date_formatted {
    group_label: "Created date"
    label: "Date"
    type: date_raw
    sql: ${created_date} ;;
    html: {{ rendered_value | date: "%b %d, %y" }};;
  }

  dimension: week_formatted {
    group_label: "Created date"
    label: "Week"
    type: date_raw
    sql: ${created_week} ;;
    html: {{ rendered_value | date: "Week %U (%b %d)" }};;
  }


strftime Reference

In der folgenden Tabelle sind verschiedene strftime-Formate aufgeführt. Beachten Sie, dass nicht alle Formate in Looker wie erwartet gerendert werden.

specifier Ersetzt durch Beispiel
%a Abgekürzter Wochentagname * Do.
%A Vollständiger Name des Wochentags * Donnerstag
%b Abgekürzter Monatsname * Aug.
%B Vollständiger Monatsname * August
%c Darstellung von Datum und Uhrzeit * Do., 23. Aug., 14:55:02 2001
%C Jahr geteilt durch 100 und auf eine Ganzzahl (00–99) gekürzt 20
%d Tag des Monats, ohne Auffüllung (01–31) 23
%D Kurzes Datum im Format MM/TT/JJ, entspricht %m/%d/%y 23.08.01
%e Tag des Monats, mit Leerzeichen (1–31) 23
%F Kurzes Datum im Format JJJJ-MM-TT, entspricht %Y-%m-%d 2001-08-23
%g Wochenjahr, letzte zwei Ziffern (00–99) 1
%G Jahr in der Woche 2001
%h Abgekürzter Monatsname * (wie %b) Aug.
%H Stunde im 24-Stunden-Format (00–23) 14
%I Stunde im 12-Stunden-Format (01–12) 02
%j Tag des Jahres (001–366) 235
%k Stunde im 24-Stunden-Format, vor einzelnen Ziffern steht ein Leerzeichen (0–23) 14
%l Stunde im 12-Stunden-Format, vor einzelnen Ziffern steht ein Leerzeichen (0–12) 2
%m Der Monat als Dezimalzahl (01–12) 8
%M Minute (00–59) 55
%n Zeilenvorschubzeichen ('\n')
%P „am“ oder „pm“ in Kleinbuchstaben p.m.
%r 12-Stunden-Format * 14:55:02 Uhr
%R 24 Stunden HH:MM-Zeit, entspricht %H:%M 14:55
%s Anzahl der Sekunden seit der Epoche 01.01.1970, 00:00:00 +0000 (UTC) 1566236649
%S Sekunde (00–61) 2
%t Horizontales Tabulatorzeichen ('\t')
%T ISO 8601-Zeitformat (HH:MM:SS), entspricht %H:%M:%S 14:55:02
%u ISO 8601-Wochentag als Zahl, wobei Montag als 1 gilt (1–7) 4
%U Wochennummer mit dem ersten Sonntag als ersten Tag der Woche (00–53) 33
%V ISO 8601-Wochennummer (01–53) 34
%w Wochentag als Dezimalzahl, wobei Sonntag als 0 gilt (0–6) 4
%W Nummer der Woche mit dem ersten Montag als erster Tag der ersten Woche (00-53) 34
%x Datumsdarstellung * 23.08.01
%X Zeitdarstellung * 14:55:02
%y Jahr, letzte zwei Ziffern (00–99) 1
%Y Jahr 2001
%z ISO 8601-Abweichung von der UTC in der Zeitzone (1 Minute=1, 1 Stunde=100). Wenn keine Zeitzone ermittelt werden kann, sind keine Zeichen vorhanden. 100
%Z Name oder Abkürzung der Zeitzone* Wenn die Zeitzone nicht ermittelt werden kann, keine Zeichen CDT
%% Ein Prozentzeichen % %