Come utilizzare Liquid per formattare le date

In alcuni casi, potresti voler modificare il modo in cui Looker formatta le date.

Ad esempio, se stai creando esplorazioni e dashboard per gli utenti in Europa, tutte le date in formato numerico devono essere visualizzate nell'ordine Giorno-Mese-Anno. Ad esempio, il 7 giugno 2019 deve essere formattato come 07/06/2019 o Jun 07, 2019. Il formato predefinito di Looker mostra la data come 2019-06-07. Sebbene tu possa utilizzare funzioni SQL come DATE_FORMAT() per modificare il formato di una data, potresti non voler scrivere tutto in SQL semplice.

Utilizzo di Liquid nel parametro html

Puoi utilizzare la formattazione liquida nel parametro html di una dimensione per modificare il formato di qualsiasi campo che utilizza un formato di data valido. Poiché Liquid si aspetta una data valida, è meglio utilizzare gli intervalli di tempo di un gruppo di dimensioni esistente. Non puoi modificare i numeri della settimana o del mese, perché vengono restituiti come numeri interi.

Ad esempio, puoi formattare ${created_date} in modo che venga visualizzato come Aug 23 22 anziché il valore predefinito di Looker 2022-08-23:


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


Il formato della sintassi della stringa "%b %d, %y" è lo stesso di strftime.

Poiché il parametro html utilizza la formattazione Liquid, il valore originale dell'intervallo di tempo non viene modificato, ma solo il modo in cui viene visualizzato all'utente. In questo modo, l'ordine in cui le date vengono visualizzate in una query non cambierà.

Di seguito sono riportati altri esempi che puoi utilizzare. Il riferimento più grande dei formati disponibili si trova in fondo a questa pagina.

Preimpostazione Esempio
%m/%d/%Y 06/05/2013
%A, %B %e, %Y Mercoledì 5 giugno 2013
%b %e %a 5 giu Mer

Esempio

Il seguente esempio di query di esplorazione mostra Data ordine articoli e Settimana ordine articoli formattati in modo diverso e organizzati in un'etichetta di gruppo Data creazione per simulare un gruppo di dimensioni di date nel selettore di campi dell'esplorazione.

La formattazione personalizzata mostra agli utenti la data e il numero di settimana dell'anno corrispondenti ai valori più elevati di Conteggio elementi in ordine decrescente.

Per saperne di più sull'utilizzo del parametro group_label, consulta la pagina della documentazione di group_label.

Una query di esplorazione mostra i risultati della formattazione personalizzata delle date per Data articoli ordine, Settimana articoli ordine, ordinati in ordine decrescente per Conteggio articoli ordine.

Il codice LookML

L'esempio di esplorazione utilizza il seguente codice LookML:



# 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

La tabella seguente elenca i vari formati strftime. Tieni presente che non tutti i formati potrebbero essere visualizzati come previsto in Looker.

specifier Sostituito da Esempio
%a Nome abbreviato del giorno della settimana * Gio
%A Nome completo del giorno della settimana * Giovedì
%b Nome del mese abbreviato * ago
%B Nome completo del mese * Agosto
%c Rappresentazione di data e ora * Gio 23 ago 14:55:02 2001
%C Anno diviso per 100 e troncato a numero intero (00-99) 20
%d Giorno del mese con zeri iniziali (01-31) 23
%D Data breve MM/GG/AA, equivalente a %m/%d/%y 23/08/01
%e Giorno del mese con spaziatura ( 1-31) 23
%F Data breve AAAA-MM-GG, equivalente a %Y-%m-%d 2001-08-23
%g Anno basato sulla settimana, ultime due cifre (00-99) 1
%G Anno basato sulle settimane 2001
%h Nome del mese abbreviato * (come %b) ago
%H Ora nel formato 24 ore (00-23) 14
%I Ora nel formato 12 ore (01-12) 02
%j Giorno dell'anno (001-366) 235
%k Ora nel formato 24 ore, le cifre singole sono precedute da uno spazio vuoto (0-23) 14
%l Ora nel formato 12 ore, le cifre singole sono precedute da uno spazio vuoto (0-12) 2
%m Mese come numero decimale (01-12) 8
%M Minuto (00-59) 55
%n Carattere di nuova riga ("\n")
%P Designazione AM o PM in minuscolo pm
%r Ora in formato 12 ore * 14:55:02
%R Ora HH:MM a 24 ore, equivalente a %H:%M 14:55
%s Numero di secondi dall'epoca, 01-01-1970 00:00:00 +0000 (UTC) 1566236649
%S Secondo (00-61) 2
%t Carattere tabulazione orizzontale ("\t")
%T Formato dell'ora ISO 8601 (HH:MM:SS), equivalente a %H:%M:%S 14:55:02
%u Giorno della settimana ISO 8601 come numero con lunedì come 1 (1-7) 4
%U Numero di settimana con la prima domenica come primo giorno della prima settimana (00-53) 33
%V Numero di settimana ISO 8601 (01-53) 34
%w Giorno della settimana come numero decimale con domenica pari a 0 (0-6) 4
%W Numero di settimana con il primo lunedì come primo giorno della prima settimana (00-53) 34
%x Rappresentazione della data * 23/08/01
%X Rappresentazione del tempo * 14:55:02
%y Anno, ultime due cifre (00-99) 1
%Y Anno 2001
%z Differenza ISO 8601 dal fuso orario UTC (1 minuto=1, 1 ora=100) Se non è possibile determinare il fuso orario, non sono presenti caratteri 100
%Z Nome o abbreviazione del fuso orario *Se non è possibile determinare il fuso orario, non inserire alcun carattere CDT
%% Un segno di percentuale %