Em algumas situações, talvez você queira mudar a maneira como o Looker formata as datas.
Por exemplo, se você estiver criando análises detalhadas e painéis para usuários na Europa, todas as datas em formato totalmente numérico precisam aparecer na ordem dia-mês-ano. Por exemplo, 7 de junho de 2019 precisa ser formatado como 07/06/2019 ou Jun 07, 2019. O formato padrão do Looker renderiza a data como 2019-06-07. Embora seja possível usar funções SQL, como DATE_FORMAT(), para alterar um formato de data, talvez você não queira escrever tudo em SQL simples.
Como usar o Liquid no parâmetro html
Você pode usar a formatação líquida no parâmetro html de uma dimensão para mudar o formato de qualquer campo que use um formato de data válido. Como o Liquid espera uma data válida, é melhor usar os períodos de um grupo de dimensão existente. Não é possível mudar os números de semana ou mês, porque eles são retornados como números inteiros.
Por exemplo, é possível formatar ${created_date} para renderizar como Aug 23 22 em vez do 2022-08-23 padrão do Looker:
dimension: date_formatted {
sql: ${created_date} ;;
html:{{ rendered_value | date: "%b %d, %y" }};;
}
O formato da sintaxe de string "%b %d, %y" é o mesmo que strftime.
Como 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 usuário. Isso garante que a ordem em que as datas aparecem em uma consulta não seja alterada.
Confira a seguir alguns outros exemplos que podem ser usados. A referência maior dos formatos disponíveis está na parte de baixo 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 de junho, quarta-feira |
Exemplo
O exemplo a seguir de uma consulta de Análise mostra Data dos itens do pedido e Semana dos itens do pedido formatados de maneira diferente e organizados em um rótulo de grupo Data de criação para simular um grupo de dimensão de data no seletor de campos da Análise.
A formatação personalizada mostra aos usuários qual data e qual número de semana do ano correspondem aos maiores valores de Contagem de itens em ordem decrescente.
Consulte a página de documentação do group_label para saber mais sobre como usar o parâmetro group_label.
O LookML
O exemplo de Análise detalhada 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 a seguir lista vários formatos de strftime. Nem todos os formatos são renderizados como esperado no Looker.
| Especificador | 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 * | 23 de agosto de 2001, 14h55min02s |
| %C | Ano dividido por 100 e truncado para número inteiro (00 a 99) | 20 |
| %d | Dia do mês, com zeros à esquerda (01-31) | 23 |
| %D | Data curta MM/DD/AAAA, equivalente a %m/%d/%y | 23/08/01 |
| %e | Dia do mês, com espaço ( 1 a 31) | 23 |
| %F | Data curta AAAA-MM-DD, equivalente a %Y-%m-%d | 2001-08-23 |
| %g | Ano com base na semana, dois últimos dígitos (00-99) | 1 |
| %G | Ano com base na semana | 2001 |
| %h | Nome abreviado do mês * (igual a %b) | Ago |
| %H | Hora no formato de 24 horas (00 a 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, dígitos únicos são precedidos por um espaço em branco (0-23) | 14 |
| %l | Hora no formato de 12 horas, dígitos únicos são precedidos por um espaço em branco (0 a 12) | 2 |
| %m | Mês como número decimal (01-12) | 8 |
| %M | Minuto (00-59) | 55 |
| %n | Caractere de nova linha ("'\n') | |
| %P | Designação am ou pm em letras minúsculas | pm |
| %r | Relógio de 12 horas * | 14h55:02 |
| %R | Horário HH:MM de 24 horas, equivalente a %H:%M | 14:55 |
| %s | Número de segundos desde a época, 1970-01-01 00:00:00 +0000 (UTC) | 1566236649 |
| %S | Segundo (00-61) | 2 |
| %t | Caractere 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 (00-53) | 33 |
| %V | Número da semana ISO 8601 (01 a 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 (00-53) | 34 |
| %x | Representação da data * | 23/08/01 |
| %X | Representação de tempo * | 14:55:02 |
| %y | Ano, dois últimos dígitos (00-99) | 1 |
| %Y | Ano | 2001 |
| %z | Deslocamento ISO 8601 em relação ao UTC no fuso horário (1 minuto=1, 1 hora=100). Se o fuso horário não puder ser determinado, não haverá caracteres. | 100 |
| %Z | Nome ou abreviação do fuso horário *Se não for possível determinar o fuso horário, não haverá caracteres | CDT |
| %% | Um sinal de porcentagem | % |