Funciones de fecha

Las fechas son un elemento común en muchas fuentes de datos. Si un campo contiene fechas reconocibles, tendrá un tipo de datos de fecha o fecha y hora. Cuando los campos de fecha se utilizan en la visualización, obtienen un conjunto especial de funcionalidades, que incluyen un desglose automático de la jerarquía de fechas, opciones de filtro específicas de fechas y opciones de formato de fechas especializadas. El uso de fechas en los cálculos a menudo requiere el uso de funciones específicas de fechas.

Familiarícese con otros conceptos de fechas

Las funciones de fecha a veces hacen referencia a elementos específicos de la fecha, incluido el argumento date_part, el parámetro opcional [start_of_week] y literales de fecha (#). Estos se tratan con más detalle al final de este tema.

Hay varios otros temas que pueden ser de interés pero que no forman parte de las funciones de fecha:

Consejo: ¿Su campo ya está reconocido como una fecha (tiene un icono de fecha en el panel Datos) y está intentando controlar cómo aparece en la visualización? Es posible que necesite formatearlo en lugar de utilizar una función de fecha. Por ejemplo, desea mostrar 22 de septiembre de 2024 como 24/09. Esto se gestiona formateando la fecha, no mediante un cálculo.

Consulte Formatos de fecha personalizada y los temas relacionados para trabajar con campos de fecha. Las funciones de fecha en esta página le permiten manipular campos calculados de fechas, no establecer su formato de visualización.

Funciones de fecha disponibles en Tableau

DATE

Escriba la función de conversión que cambia las expresiones de cadenas y números en fechas, siempre que estén en un formato reconocible.

SintaxisDATE(expression)
ResultadoFecha
DefiniciónDevuelve una fecha dada a una expresión de número, cadena o <expression> de fecha.
Ejemplo
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
Notas

A diferencia de DATEPARSE, no es necesario proporcionar un patrón, ya que DATE reconoce automáticamente muchos formatos de fecha estándar. Si DATE no reconoce la entrada, intente usar DATEPARSE y especifique el formato.

MAKEDATE es otra función similar, pero MAKEDATE requiere la entrada de valores numéricos para el año, el mes y el día.

DATEADD

Agrega un número específico de partes de fecha (meses, días, etc.) a la fecha de inicio.

SintaxisDATEADD(date_part, interval, date)
ResultadoFecha
DefiniciónIndica la <date> con el valor numérico especificado de <interval> ya añadido a la <date_part> especificada de la fecha en cuestión. Por ejemplo, agregar tres meses o 12 días a una fecha de inicio.
Ejemplo

Retrasar todas las fechas de vencimiento por una semana

DATEADD('week', 1, [due date])

Agregar 280 días a la fecha 20 de febrero de 2021

DATEADD('day', 280, #2/20/21#) = #November 27, 2021#
NotasAdmite fechas ISO 8601.

DATEDIFF

Devuelve el número de partes de fechas (semanas, años, etc.) entre dos fechas.

SintaxisDATEDIFF(date_part, date1, date2, [start_of_week])
ResultadoEntero
DefiniciónIndica la diferencia entre <date1> y <date2> que se expresa en unidades de <date_part>. Por ejemplo, restar las fechas en que alguien entró y salió de una banda para ver cuánto tiempo estuvo en la banda.
Ejemplo

Número de días entre el 25 de marzo de 1986 y el 20 de febrero de 2021

DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751

¿Cuántos meses estuvo alguien en una banda?

DATEDIFF('month', [date joined band], [date left band])
NotasAdmite fechas ISO 8601.

DATENAME

Devuelve el nombre de la parte de la fecha especificada como una cadena discreta.

SintaxisDATENAME(date_part, date, [start_of_week])
ResultadoCadena
DefiniciónIndica <date_part> de <date> como una cadena.
Ejemplo
DATENAME('year', #3/25/1986#) = "1986"
DATENAME('month', #1986-03-25#) = "March"
Notas

Admite fechas ISO 8601.

Un cálculo muy similar es DATEPART, que devuelve el valor de la parte de la fecha especificada como un entero continuo. DATEPART puede ser más rápido porque es una operación numérica.

Al cambiar los atributos del resultado del cálculo (dimensión o medida, continua o discreta) y el formato de fecha, los resultados de DATEPART y DATENAME se pueden formatear para que sean idénticos.

Una función inversa es DATEPARSE, que toma un valor de cadena y lo formatea como una fecha.

DATEPARSE

Devuelve cadenas formateadas específicamente como fechas.

SintaxisDATEPARSE(date_format, date_string)
ResultadoFecha
DefiniciónEl argumento <date_format> describe cómo se organiza el campo <date_string>. Debido a la variedad de formas en que se puede ordenar, el campo de cadena <date_format> debe coincidir exactamente. Para ver una explicación completa y los detalles de formato, consulte Convertir un campo en un campo de fecha(El enlace se abre en una ventana nueva)
Ejemplo
DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#
Notas

DATE es una función similar que reconoce automáticamente muchos formatos de fecha estándar. DATEPARSE puede ser una opción mejor si DATE no reconoce el patrón de entrada.

MAKEDATE es otra función similar, pero MAKEDATE requiere la entrada de valores numéricos para el año, el mes y el día.

Las funciones inversas, que separan las fechas y devuelven el valor de sus partes, son DATEPART (salida de entero) y DATENAME (salida de cadena).

Limitaciones de la base de datos

DATEPARSE está disponible por medio de los siguientes conectores: conexiones de archivos de texto y de Excel no heredadas, Amazon EMR Hadoop Hive, Cloudera Hadoop, Hojas de cálculo de Google, Hortonworks Hadoop Hive, MapR Hadoop Hive, MySQL, Oracle, PostgreSQL y extracciones de Tableau. Algunos formatos pueden no estar disponibles para todas las conexiones.

DATEPARSE no es compatible con las variantes de Hive. Solo se admiten Denodo, Drill y Snowflake.

DATEPART

Devuelve el nombre de la parte de la fecha especificada como un entero.

SintaxisDATEPART(date_part, date, [start_of_week])
ResultadoEntero
DefiniciónIndica <date_part> de <date> como un entero.
Ejemplo
DATEPART('year', #1986-03-25#) = 1986
DATEPART('month', #1986-03-25#) = 3
Notas

Admite fechas ISO 8601.

Un cálculo muy similar es DATENAME, que devuelve el nombre de la parte de la fecha especificada como una cadena discreta. DATEPART puede ser más rápido porque es una operación numérica. Al cambiar los atributos del campo (dimensión o medida, continua o discreta) y el formato de la fecha, los resultados de DATEPART y DATENAME se pueden formatear para que sean idénticos.

Una función inversa es DATEPARSE, que toma un valor de cadena y lo formatea como una fecha.

DATETRUNC

Esta función se puede considerar como un redondeo de fechas. Toma una fecha específica y devuelve una versión de esa fecha en la especificidad deseada. Debido a que cada fecha debe tener un valor para el día, el mes, el trimestre y el año, DATETRUNC establece los valores como el valor más bajo para cada parte de la fecha hasta la parte de la fecha especificada. Consulte el ejemplo para obtener más información.

SintaxisDATETRUNC(date_part, date, [start_of_week])
ResultadoFecha
DefiniciónTrunca la <date> a la precisión especificada por la <date_part>. Esta función indica una fecha nueva. Por ejemplo, al truncar una fecha que está en la mitad del mes en el nivel de mes, esta función indica el primer día del mes.
Ejemplo
DATETRUNC('day', #9/22/2018#) = #9/22/2018#
DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#

(el lunes de la semana que contiene el 22/09/2018)

DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# 

(el primer día del trimestre que contiene el 22/09/2018)

Nota: Para semana e iso-semana, start_of_week entra en juego. Las iso-semanas siempre comienzan el lunes. Para la configuración regional de este ejemplo, un start_of_week sin especificar significa que la semana comienza el domingo.

Notas

Admite fechas ISO 8601.

No debería usar DATETRUNC para, por ejemplo, dejar de mostrar la hora de un campo de fecha y hora en una visualización. Si desea truncar la visualización de una fecha en lugar de redondear su precisión, ajuste el formato(El enlace se abre en una ventana nueva).

Por ejemplo, DATETRUNC('day', #5/17/2022 3:12:48 PM#), si se formatea en la visualización para mostrar segundos, se mostrará como 5/17/2022 12:00:00 AM. El valor se trunca a día, pero la pantalla pasa a segundos.

DAY

Devuelve el día de del mes (1-31) como un entero.

SintaxisDAY(date)
ResultadoEntero
DefiniciónDevuelve el día de la <date> dada como un entero.
Ejemplo
Day(#September 22, 2018#) = 22
NotasConsulte también WEEK, MONTH, QUARTER, YEARy los equivalentes ISO.

ISDATE

Comprueba si la cadena tiene un formato de fecha válido.

SintaxisISDATE(string)
ResultadoBooleano
DefiniciónDevuelve true si una <string> dada es una fecha válida.
Ejemplo
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
NotasEl argumento requerido debe ser una cadena. ISDATE no se puede utilizar para un campo con un tipo de datos de fecha; el cálculo devolverá un error.

ISOQUARTER

SintaxisISOQUARTER(date)
ResultadoEntero
DefiniciónDevuelve el trimestre basado en semanas ISO8601 de una <date> dada como un número entero.
Ejemplo
ISOQUARTER(#1986-03-25#) = 1
NotasConsulte también ISOWEEK, ISOWEEKDAY, ISOYEAR y los no ISO equivalentes.

ISOWEEK

SintaxisISOWEEK(date)
ResultadoEntero
DefiniciónDevuelve la semana basada en semanas ISO8601 de una <date> dada como un número entero.
Ejemplo
ISOWEEK(#1986-03-25#) = 13
NotasConsulte también ISOWEEKDAY, ISOQUARTER, ISOYEAR y los no ISO equivalentes.

ISOWEEKDAY

SintaxisISOWEEKDAY(date)
ResultadoEntero
DefiniciónDevuelve el día de la semana basado en semanas ISO8601 de una <date> dada como un número entero.
Ejemplo
ISOWEEKDAY(#1986-03-25#) = 2
NotasConsulte también ISOWEEK, ISOQUARTER, ISOYEAR y los no ISO equivalentes.

ISOYEAR

SintaxisISOYEAR(date)
ResultadoEntero
DefiniciónDevuelve el año basado en semanas ISO8601 de una determinada <date> como un número entero.
Ejemplo
ISOYEAR(#1986-03-25#) = 1,986
NotasConsulte también ISOWEEK, ISOWEEKDAY, ISOQUARTER y los no ISO equivalentes.

MAKEDATE

SintaxisMAKEDATE(year, month, day)
ResultadoFecha
DefiniciónDevuelve un valor de fecha construido a partir del <year>, <month> y <day> especificados.
Ejemplo
MAKEDATE(1986,3,25) = #1986-03-25#
Notas

Nota: Los valores ingresados incorrectamente se ajustarán a una fecha, como MAKEDATE(2020,4,31) = May 1, 2020 en lugar de devolver un error de que no existe el 31 de abril.

Disponible para las extracciones de datos de Tableau. Compruebe la disponibilidad en otras fuentes de datos.

MAKEDATE requiere entradas numéricas para las partes de una fecha. Si sus datos son una cadena que debería ser una fecha, pruebe la función DATE. DATE reconoce automáticamente muchos formatos de fecha estándar. Si DATE no reconoce la entrada, pruebe a usar DATEPARSE.

MAKEDATETIME

SintaxisMAKEDATETIME(date, time)
ResultadoDatetime
DefiniciónDevuelve una fecha y una hora que combinan una <date> y una <time>. La fecha puede ser de tipo fecha, fecha y hora o cadena. La hora debe ser fecha y hora.
Ejemplo
MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#
Notas

Esta función solo está disponible para las conexiones compatibles con MySQL (que en Tableau son MySQL y Amazon Aurora).

MAKETIME es una función similar disponible para las extracciones de datos de Tableau y algunas otras fuentes de datos.

MAKETIME

SintaxisMAKETIME(hour, minute, second)
ResultadoDatetime
DefiniciónDevuelve un valor de fecha construido a partir del <hour>, <minute> y <second> especificados.
Ejemplo
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
Notas

Debido a que Tableau no admite un tipo de datos de hora, solo fecha y hora, la salida es una fecha y hora. La porción de fecha del campo será 1/1/1899.

Función similar a MAKEDATETIME, que solo está disponible para conexiones compatibles con MYSQL.

MAX

SintaxisMAX(expression) o MAX(expr1, expr2)
ResultadoEl mismo tipo de datos que el argumento, o NULL si alguna parte del argumento es nula.
Definición

Indica el máximo de dos argumentos, los cuales deben ser del mismo tipo de datos.

MAX se puede aplicar también a un solo campo como una agregación.

Ejemplo
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Notas

Para cadenas

MAX suele ser el valor que aparece en último lugar en orden alfabético.

Para las fuentes de datos de bases de datos, el valor de cadena MAX es el valor más alto en la secuencia de orden definido por la base de datos para esta columna.

Para fechas

Para las fechas, MAX es la fecha más reciente. Si MAX es una agregación, el resultado no tendrá una jerarquía de fechas. Si MAX es una comparación, el resultado conservará la jerarquía de fechas.

Como agregación

MAX(expression) es una función agregada y devuelve un solo resultado agregado. Se muestra como AGG(expression) en la visualización.

Como comparación

MAX(expr1, expr2) compara los dos valores y devuelve un valor de nivel de fila.

Consulte también MIN.

MIN

SintaxisMIN(expression) o MIN(expr1, expr2)
ResultadoEl mismo tipo de datos que el argumento, o NULL  si alguna parte del argumento es nula.
Definición

Indica el mínimo de dos argumentos, los cuales deben ser del mismo tipo de datos.

MIN se puede aplicar también a un solo campo como una agregación.

Ejemplo
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Notas

Para cadenas

MIN suele ser el valor que aparece en primer lugar en orden alfabético.

Para las fuentes de datos de bases de datos, el valor de cadena MIN es el valor más bajo en la secuencia de orden definido por la base de datos para esta columna.

Para fechas

Para las fechas, MIN es la fecha más anterior. Si MIN es una agregación, el resultado no tendrá una jerarquía de fechas. Si MIN es una comparación, el resultado conservará la jerarquía de fechas.

Como agregación

MIN(expression) es una función agregada y devuelve un solo resultado agregado. Se muestra como AGG(expression) en la visualización.

Como comparación

MIN(expr1, expr2) compara los dos valores y devuelve un valor de nivel de fila.

Consulte también MAX.

MONTH

SintaxisMONTH(date)
ResultadoEntero
DefiniciónDevuelve el mes de la <date> dada como un número entero.
Ejemplo
MONTH(#1986-03-25#) = 3
NotasConsulte también DAY, WEEK, QUARTER, YEAR y los equivalentes ISO

NOW

SintaxisNOW()
ResultadoDatetime
DefiniciónDevuelve la fecha y hora actual del sistema.
Ejemplo
NOW() = 1986-03-25 1:08:21 PM
Notas

NOW no acepta argumentos.

Consulte también TODAY, un cálculo similar que devuelve una fecha en lugar de una fecha y una hora.

Si la fuente de datos es una conexión activa, la fecha y la hora del sistema podrían estar en otra zona horaria. Para obtener más información, consulte la Base de conocimientos.

QUARTER

SintaxisQUARTER(date)
ResultadoEntero
DefiniciónDevuelve el trimestre de la <date> dada como un número entero.
Ejemplo
QUARTER(#1986-03-25#) = 1
NotasConsulte también DAY, WEEK, MONTH, YEAR y los equivalentes ISO

TODAY

SintaxisTODAY()
ResultadoFecha
DefiniciónDevuelve la fecha actual del sistema local.
Ejemplo
TODAY() = 1986-03-25
Notas

TODAY no acepta argumentos.

Consulte también NOW, un cálculo similar que devuelve una fecha y hora en lugar de una fecha.

Si la fuente de datos es una conexión activa, la fecha del sistema podría estar en otra zona horaria. Para obtener más información, consulte la Base de conocimientos.

WEEK

SintaxisWEEK(date)
ResultadoEntero
DefiniciónDevuelve la semana de la <date> dada como un número entero.
Ejemplo
WEEK(#1986-03-25#) = 13
NotasConsulte también DAY, MONTH, QUARTER, YEAR y los equivalentes ISO

YEAR

SintaxisYEAR(date)
ResultadoEntero
DefiniciónDevuelve el año de la <date> dada como un número entero.
Ejemplo
YEAR(#1986-03-25#) = 1,986
NotasConsulte también DAY, WEEK, MONTH, QUARTER y los equivalentes ISO

date_part

Muchas funciones de fecha en Tableau toman el argumento date_part, que es una constante de cadena que le dice a la función qué parte de una fecha considerar, como día, semana, trimestre, etc. Los valores date_part válidos que puede usar son:

date_partValores
'year'Año con cuatro dígitos
'quarter'1-4
'month'1-12 o “enero”, “febrero”, etc.
'dayofyear'Día del año; 1 de enero es 1, 1 de febrero es 32, etc.
'day'1-31
'weekday'1-7 o “domingo”, “lunes”, etc.
'week'1-52
'hour'0-23
'minute'0-59
'second'0-60
'iso-year'Año ISO 8601 de cuatro dígitos
'iso-quarter'1-4
'iso-week'1-52 y el inicio de la semana siempre es lunes
'iso-weekday'1-7 y el inicio de la semana siempre es lunes

El parámetro [start_of_week]

Algunas funciones tienen el parámetro opcional [start_of_week]. El parámetro start_of_week se puede usar para especificar qué día se considera el primer día de la semana, como "Domingo" o "Lunes". Si se omite, el comienzo de la semana se determina mediante la fuente de datos. Consulte Propiedades de fecha para fuente de datos.

Para los ejemplos a continuación, el 22 de septiembre es un domingo y el 24 de septiembre es un martes. La función DATEDIFF se utiliza para calcular las semanas entre estas fechas.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1

  • Debido a que start_of_week es 'lunes', estas fechas están en semanas diferentes.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0

  • Debido a que start_of_week es 'domingo', estas fechas están en la misma semana.

El literal de fecha (#)

Los ejemplos suelen utilizar el símbolo de libra (#) con expresiones de fecha. Este es el literal de fecha, similar al uso de comillas para cadenas de texto, y le dice a Tableau que el valor dentro de los símbolos es una fecha.

Sin los literales de fecha, las fechas pueden interpretarse como varios otros tipos de datos. Por ejemplo:

FormatoTipos de datosValor
‘25 de marzo de 1986’Cadena‘25 de marzo de 1986’
#25/03/1986#Fecha#25/03/1986#
03/25/1986Decimal flotante0.00006042
03/25/1986Entero1,958
03/25/1986 no válido

Para obtener más información, consulte Sintaxis de las expresiones literales.

Crear un cálculo de fecha

Practique la creación de un cálculo de fecha usando la fuente de datos de muestra Superstore.

  1. En Tableau Desktop, conéctese a la fuente de datos guardada Sample-Superstore, que se incluye con Tableau.
  2. Abra una hoja de trabajo.
  3. Desde el panel Datos, en Dimensiones, arrastre Fecha de pedido al estante Filas.
  4. En el estante Filas, haga clic en el icono de suma en el campo YEAR(Order Date).

    QUARTER(Order Date) se añade al estante Filas y la vista se actualiza.

  5. En el estante Filas, haga clic en el icono de suma en el campo QUARTER(Order Date) para profundizar hasta MONTH(Order Date).

  6. Seleccione Análisis > Crear campo calculado.
  7. En el editor de cálculo que se abre, haga lo siguiente:
    • Asigne el nombre Quarter Date al campo calculado.
    • Escriba la fórmula siguiente: DATETRUNC('quarter', [Order Date])
    • Cuando haya terminado, haga clic en Aceptar.

      El campo calculado de la nueva fecha aparece en Dimensiones en el panel Datos. Igual que con el resto de los campos, puede usarlo en una o más visualizaciones.

  8. Desde el panel Datos, en Dimensiones, arrastre Fecha de trimestre al estante Filas y colóquelo a la derecha de MONTH(Order Date). La visualización se actualiza con los valores de año. Esto se debe a que Tableau resume los datos de fechas al nivel más alto de detalle.
  9. En el estante Filas, haga clic con el botón derecho en YEAR(Fecha de trimestre) y seleccione Fecha exacta.
  10. En el estante Filas, haga clic con el botón derecho de nuevo en YEAR(Fecha de trimestre) y seleccione Discreto.

    La visualización se actualiza con la fecha de trimestre exacta en cada fila de la tabla.

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!