Como usar o Liquid para formatar datas

Em algumas situações, pode querer alterar a forma como o Looker formata as datas.

Por exemplo, se estiver a criar explorações e painéis de controlo para utilizadores na Europa, todas as datas que estejam num formato totalmente numérico devem aparecer na ordem Dia-Mês-Ano. Por exemplo, 7 de junho de 2019 deve ser formatado como 07/06/2019 ou Jun 07, 2019. O formato predefinido do Looker renderiza a data como 2019-06-07. Embora possa usar funções SQL, como DATE_FORMAT(), para alterar um formato de data, pode não querer escrever tudo em SQL simples.

Usar o Liquid no parâmetro html

Pode usar a formatação Liquid no parâmetro html de uma dimensão para alterar o formato de qualquer campo que use um formato de data válido. Uma vez que o Liquid espera uma data válida, é melhor usar os prazos de um grupo de dimensões existente. Não pode alterar os números da semana ou do mês, porque são devolvidos como números inteiros.

Por exemplo, pode formatar ${created_date} para renderizar como Aug 23 22 em vez da predefinição do Looker 2022-08-23:


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


O formato da sintaxe da string "%b %d, %y" é o mesmo que strftime.

Uma vez que o parâmetro html usa a formatação Liquid, o valor original do período não é alterado. Apenas a forma como o valor é renderizado para o utilizador. Isto garante que a ordem pela qual as datas aparecem numa consulta não se altera.

Seguem-se outros exemplos que pode usar. A referência mais abrangente dos formatos disponíveis encontra-se na parte inferior desta página.

Predefinição Exemplo
%m/%d/%Y 05/06/2013
%A, %B %e, %Y Quarta-feira, 5 de junho de 2013
%b %e %a 5 jun (qua)

Exemplo

O exemplo seguinte de uma consulta de exploração mostra Data dos artigos da encomenda e Semana dos artigos da encomenda formatados de forma diferente e organizados sob uma etiqueta de grupo Data de criação para simular um grupo de dimensões de data no selecionador de campos da funcionalidade Explorar.

A formatação personalizada mostra aos utilizadores a data e o número da semana do ano que correspondem aos maiores valores de Quantidade de artigos por ordem descendente.

Consulte a group_label página de documentação para saber mais sobre a utilização do parâmetro group_label.

Uma consulta de exploração apresenta resultados de formatação de data personalizada para a data dos artigos da encomenda, a semana dos artigos da encomenda, ordenados por número de artigos da encomenda de forma descendente.

O LookML

O exemplo de exploração usa o seguinte 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

A tabela seguinte apresenta vários formatos strftime. Tenha em atenção que nem todos os formatos podem ser renderizados como esperado no Looker.

specifier Substituído por Exemplo
%a Nome abreviado do dia da semana * Qui
%A Nome completo do dia da semana * Quinta-feira
%b Nome abreviado do mês * Ago
%B Nome completo do mês * Agosto
%c Representação de data e hora * Qui, 23 ago 14:55:02 2001
%C Ano dividido por 100 e truncado para um número inteiro (00-99) 20
%d Dia do mês com zero à esquerda (01-31) 23
%D Data curta DD/MM/AA, equivalente a %m/%d/%y 23/08/01
%e Dia do mês, com espaços ( 1-31) 23
%F Data curta no formato AAAA-MM-DD, equivalente a %Y-%m-%d 2001-08-23
%g Ano baseado na semana, últimos dois dígitos (00-99) 1
%G Ano baseado na semana 2001
%h Nome abreviado do mês * (igual a %b) Ago
%H Hora no formato de 24 horas (00-23) 14
%I Hora no formato de 12 horas (01-12) 02
%j Dia do ano (001-366) 235
%k Hora no formato de 24 horas. Os dígitos únicos são precedidos por um espaço em branco (0-23) 14
%l Hora no formato de 12 horas. Os dígitos únicos são precedidos de um espaço em branco (0-12) 2
%m Mês como número decimal (01-12) 8
%M Minuto (00-59) 55
%n Carácter de nova linha ("\n")
%P Designação am ou pm em minúsculas da tarde
%r Hora do relógio de 12 horas * 2:55:02 PM
%R Hora no formato HH:MM de 24 horas, equivalente a %H:%M 14:55
%s Número de segundos desde a época, 01/01/1970 às 00:00:00 +0000 (UTC) 1566236649
%S Segundo (00-61) 2
%t Caráter de tabulação horizontal ('\t')
%T Formato de hora ISO 8601 (HH:MM:SS), equivalente a %H:%M:%S 14:55:02
%u Dia da semana ISO 8601 como número, com segunda-feira como 1 (1-7) 4
%U Número da semana com o primeiro domingo como o primeiro dia da semana 1 (00-53) 33
%V Número da semana ISO 8601 (01-53) 34
%w Dia da semana como número decimal com domingo como 0 (0-6) 4
%W Número da semana com a primeira segunda-feira como o primeiro dia da semana um (00-53) 34
%x Representação de datas * 23/08/01
%X Representação de tempo * 14:55:02
%y Ano, últimos dois dígitos (00-99) 1
%Y Ano 2001
%z Desvio ISO 8601 do UTC no fuso horário (1 minuto=1, 1 hora=100). Se não for possível determinar o fuso horário, não são apresentados carateres 100
%Z Nome ou abreviatura do fuso horário *Se não for possível determinar o fuso horário, não são apresentados carateres CDT
%% Um sinal % %