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:
- Dar formato a cómo se muestra una fecha en una visualización: Formatos de fecha personalizada
- Establecer propiedades de fecha predeterminadas: Propiedades de fecha para fuente de datos
- Trabajar con fechas fiscales: Fechas fiscales
- Utilice el calendario Calendario semanal ISO-8601
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.
Sintaxis | DATE(expression) |
Resultado | Fecha |
Definición | Devuelve 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
|
DATEADD
Agrega un número específico de partes de fecha (meses, días, etc.) a la fecha de inicio.
Sintaxis | DATEADD(date_part, interval, date) |
Resultado | Fecha |
Definición | Indica 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# |
Notas | Admite fechas ISO 8601. |
DATEDIFF
Devuelve el número de partes de fechas (semanas, años, etc.) entre dos fechas.
Sintaxis | DATEDIFF(date_part, date1, date2, [start_of_week]) |
Resultado | Entero |
Definición | Indica 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]) |
Notas | Admite fechas ISO 8601. |
DATENAME
Devuelve el nombre de la parte de la fecha especificada como una cadena discreta.
Sintaxis | DATENAME(date_part, date, [start_of_week]) |
Resultado | Cadena |
Definición | Indica <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. Al cambiar los atributos del resultado del cálculo (dimensión o medida, continua o discreta) y el formato de fecha, los resultados de 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.
Sintaxis | DATEPARSE(date_format, date_string) |
Resultado | Fecha |
Definición | El 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 |
Las funciones inversas, que separan las fechas y devuelven el valor de sus partes, son |
Limitaciones de la base de datos |
|
DATEPART
Devuelve el nombre de la parte de la fecha especificada como un entero.
Sintaxis | DATEPART(date_part, date, [start_of_week]) |
Resultado | Entero |
Definición | Indica <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 Una función inversa es |
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.
Sintaxis | DATETRUNC(date_part, date, [start_of_week]) |
Resultado | Fecha |
Definición | Trunca 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, |
Notas | Admite fechas ISO 8601. No debería usar Por ejemplo, |
DAY
Devuelve el día de del mes (1-31) como un entero.
Sintaxis | DAY(date) |
Resultado | Entero |
Definición | Devuelve el día de la <date> dada como un entero. |
Ejemplo | Day(#September 22, 2018#) = 22 |
Notas | Consulte también WEEK , MONTH , QUARTER , YEAR y los equivalentes ISO. |
ISDATE
Comprueba si la cadena tiene un formato de fecha válido.
Sintaxis | ISDATE(string) |
Resultado | Booleano |
Definición | Devuelve true si una <string> dada es una fecha válida. |
Ejemplo | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
Notas | El 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
Sintaxis | ISOQUARTER(date) |
Resultado | Entero |
Definición | Devuelve el trimestre basado en semanas ISO8601 de una <date> dada como un número entero. |
Ejemplo | ISOQUARTER(#1986-03-25#) = 1 |
Notas | Consulte también ISOWEEK , ISOWEEKDAY , ISOYEAR y los no ISO equivalentes. |
ISOWEEK
Sintaxis | ISOWEEK(date) |
Resultado | Entero |
Definición | Devuelve la semana basada en semanas ISO8601 de una <date> dada como un número entero. |
Ejemplo | ISOWEEK(#1986-03-25#) = 13 |
Notas | Consulte también ISOWEEKDAY , ISOQUARTER , ISOYEAR y los no ISO equivalentes. |
ISOWEEKDAY
Sintaxis | ISOWEEKDAY(date) |
Resultado | Entero |
Definición | Devuelve 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 |
Notas | Consulte también ISOWEEK , ISOQUARTER , ISOYEAR y los no ISO equivalentes. |
ISOYEAR
Sintaxis | ISOYEAR(date) |
Resultado | Entero |
Definición | Devuelve el año basado en semanas ISO8601 de una determinada <date> como un número entero. |
Ejemplo | ISOYEAR(#1986-03-25#) = 1,986 |
Notas | Consulte también ISOWEEK , ISOWEEKDAY , ISOQUARTER y los no ISO equivalentes. |
MAKEDATE
Sintaxis | MAKEDATE(year, month, day) |
Resultado | Fecha |
Definición | Devuelve 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 Disponible para las extracciones de datos de Tableau. Compruebe la disponibilidad en otras fuentes de datos.
|
MAKEDATETIME
Sintaxis | MAKEDATETIME(date, time) |
Resultado | Datetime |
Definición | Devuelve 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
Sintaxis | MAKETIME(hour, minute, second) |
Resultado | Datetime |
Definición | Devuelve 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 |
MAX
Sintaxis | MAX(expression) o MAX(expr1, expr2) |
Resultado | El 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.
|
Ejemplo | MAX(4,7) = 7 |
Notas | Para cadenas
Para las fuentes de datos de bases de datos, el valor de cadena Para fechas Para las fechas, Como agregación
Como comparación
Consulte también |
MIN
Sintaxis | MIN(expression) o MIN(expr1, expr2) |
Resultado | El 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.
|
Ejemplo | MIN(4,7) = 4 |
Notas | Para cadenas
Para las fuentes de datos de bases de datos, el valor de cadena Para fechas Para las fechas, Como agregación
Como comparación
Consulte también |
MONTH
Sintaxis | MONTH(date) |
Resultado | Entero |
Definición | Devuelve el mes de la <date> dada como un número entero. |
Ejemplo | MONTH(#1986-03-25#) = 3 |
Notas | Consulte también DAY , WEEK , QUARTER , YEAR y los equivalentes ISO |
NOW
Sintaxis | NOW() |
Resultado | Datetime |
Definición | Devuelve la fecha y hora actual del sistema. |
Ejemplo | NOW() = 1986-03-25 1:08:21 PM |
Notas |
Consulte también 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
Sintaxis | QUARTER(date) |
Resultado | Entero |
Definición | Devuelve el trimestre de la <date> dada como un número entero. |
Ejemplo | QUARTER(#1986-03-25#) = 1 |
Notas | Consulte también DAY , WEEK , MONTH , YEAR y los equivalentes ISO |
TODAY
Sintaxis | TODAY() |
Resultado | Fecha |
Definición | Devuelve la fecha actual del sistema local. |
Ejemplo | TODAY() = 1986-03-25 |
Notas |
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
Sintaxis | WEEK(date) |
Resultado | Entero |
Definición | Devuelve la semana de la <date> dada como un número entero. |
Ejemplo | WEEK(#1986-03-25#) = 13 |
Notas | Consulte también DAY , MONTH , QUARTER , YEAR y los equivalentes ISO |
YEAR
Sintaxis | YEAR(date) |
Resultado | Entero |
Definición | Devuelve el año de la <date> dada como un número entero. |
Ejemplo | YEAR(#1986-03-25#) = 1,986 |
Notas | Consulte 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_part | Valores |
---|---|
'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:
Formato | Tipos de datos | Valor |
‘25 de marzo de 1986’ | Cadena | ‘25 de marzo de 1986’ |
#25/03/1986# | Fecha | #25/03/1986# |
03/25/1986 | Decimal flotante | 0.00006042 |
03/25/1986 | Entero | 1,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.
- En Tableau Desktop, conéctese a la fuente de datos guardada Sample-Superstore, que se incluye con Tableau.
- Abra una hoja de trabajo.
- Desde el panel Datos, en Dimensiones, arrastre Fecha de pedido al estante Filas.
- 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.
- En el estante Filas, haga clic en el icono de suma en el campo QUARTER(Order Date) para profundizar hasta MONTH(Order Date).
- Seleccione Análisis > Crear campo calculado.
- 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.
- 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.
- En el estante Filas, haga clic con el botón derecho en YEAR(Fecha de trimestre) y seleccione Fecha exacta.
- 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.