Cómo usar Liquid para aplicar formato a las fechas

En algunas situaciones, es posible que quieras cambiar la forma en que Looker da formato a las fechas.

Por ejemplo, si creas exploraciones y paneles para usuarios de Europa, las fechas que estén en formato solo numérico deberían aparecer en el orden Día-Mes-Año. Por ejemplo, el 7 de junio de 2019 debe tener el formato 07/06/2019 o Jun 07, 2019. El formato predeterminado de Looker renderiza la fecha como 2019-06-07. Si bien puedes usar funciones SQL como DATE_FORMAT() para cambiar un formato de fecha, es posible que no quieras escribir todo en SQL simple.

Cómo usar Liquid en el parámetro html

Puedes utilizar el Formato líquido en el parámetro html de una dimensión para cambiar el formato de cualquier campo que utilice un formato de fecha válido. Dado que Liquid espera una fecha válida, es mejor usar los períodos de un grupo de dimensiones existente. No puedes cambiar los números de la semana o el mes, ya que se muestran como números enteros.

Por ejemplo, puedes formatear ${created_date} para que se renderice como Aug 23 22 en lugar del 2022-08-23 predeterminado de Looker:


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


El formato de la sintaxis de string "%b %d, %y" es el mismo que strftime.

Como el parámetro html usa formato Liquid, no se modifica el valor original del período, sino la forma en que se renderiza el valor al usuario. Esto garantiza que el orden en el que aparecen las fechas en una búsqueda no cambie.

A continuación, se incluyen otros ejemplos que puedes usar. La referencia más amplia de los formatos disponibles se encuentra al final de esta página.

Ajuste predeterminado Ejemplo
%m/%d/%Y 05/06/2013
%A, %B %e, %Y Miércoles 5 de junio de 2013
%b %e %a mié 5 de jun

Ejemplo

El siguiente ejemplo de una consulta de exploración muestra las opciones Fecha de los elementos del pedido y Semana de los elementos de pedidos con un formato diferente y organizados en una etiqueta de grupo de Fecha de creación para simular un grupo de dimensiones de fecha en el selector de campos de Explorar.

El formato personalizado les muestra a los usuarios qué fecha y qué número de semana del año corresponden a los valores más altos de Recuento de elementos en orden descendente.

Consulta la página de documentación de group_label para obtener más información sobre el uso del parámetro group_label.

Una consulta de exploración muestra resultados de formato de fecha personalizado para las fechas de los elementos del pedido y la semana de los artículos de pedido, ordenados de mayor a menor.

LookML

En el ejemplo de Explorar, se usa el siguiente 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

En la siguiente tabla, se enumeran varios formatos de strftime. Ten en cuenta que no todos los formatos pueden renderizarse como se espera en Looker.

especificador Se reemplazó por Ejemplo
%a Nombre abreviado del día de la semana * Jue
%A Nombre completo del día de la semana * Jueves
%b Nombre del mes abreviado * Ago
%B Nombre del mes completo * Agosto de
%c Representación de fecha y hora * Jue 23 de agosto 14:55:02 2001
%C Año dividido por 100 y truncado a un número entero (00-99) 20
%d Día del mes, sin relleno (01-31) 23
%D Fecha corta del DD/MM/AA, equivalente a %m/%d/%y 08/23/01
%e Día del mes, con espacio ( de 1 a 31) 23
%F Fecha corta del AAAA-MM-DD, que equivale a %Y-%m-%d 2001-08-23
%g Año basado en la semana, últimos dos dígitos (00-99) 1
%G Año según la semana 2001
%h Nombre del mes abreviado * (igual que %b) Ago
%H Hora en formato de 24 h (00-23) 14
%I Hora en formato de 12 h (01-12) 02
%j Día del año (001-366) 235
%k Hora en formato de 24 h. Los dígitos individuales van precedidos por un espacio en blanco (0-23) 14
%l Hora en formato de 12 h, en los que los dígitos se muestran separados por un espacio en blanco (0-12) 2
%m Mes como número decimal (01-12) 8
%M Minuto (00-59) 55
%n Carácter de nueva línea ('\n')
%P designación de a.m. o p.m. en minúsculas p.m.
%r Formato de 12 horas * 2:55:02 p.m.
%R Hora de HH:MM de 24 horas, equivalente a %H:%M 14:55
%s Cantidad de segundos desde la época, 1970-01-01 00:00:00 +0000 (UTC) 1566236649
%S Segundo (00-61) 2
%t Carácter de pestaña horizontal ('\t')
%T Formato de hora ISO 8601 (HH:MM:SS), equivalente a %H:%M:%S 14:55:02
%u Día de la semana ISO 8601 como número, con el lunes como 1 (1-7) 4
%U Número de semana con el primer domingo como primer día de la semana uno (00-53) 33
%V Número de semana ISO 8601 (01-53) 34
%w Día de la semana como número decimal con el domingo como 0 (0-6) 4
%W Número de semana con el primer lunes como primer día de la semana uno (00-53) 34
%x Representación de la fecha * 08/23/01
%X Representación de la hora * 14:55:02
%y Año, últimos dos dígitos (00-99) 1
%Y Año 2001
%z Desfase ISO 8601 de UTC en zona horaria (1 minuto=1, 1 hora=100) Si no se puede determinar la zona horaria, no se deben tener caracteres 100
%Z Nombre o abreviatura de la zona horaria *Si no se puede determinar la zona horaria, no se admiten caracteres CDT
%% Un signo % %