Usar fechahoras en expresiones
Puede utilizar expresiones para realizar cálculos con fechas, fechahoras y horas:
- Calcule los días transcurridos, los días y horas transcurridos o las horas transcurridas
Por ejemplo, `20141231` - `20141130` devuelve 31, la cantidad de días entre ambas fechas.
- Realice ajustes positivos o negativos a las fechas, las fechahoras o las horas
Por ejemplo, `20141231` - 15 devuelve 16 dic 2014, la fecha 15 días anterior.
- Compare fechas, fechahoras u horas
Por ejemplo, `20141231 183000` > `20141231 171500` devuelve T (Verdadero), porque la primera fechahora es más reciente que la segunda fechahora.
Funciones de fecha y hora
Para ayudarlo a trabajar con los datos de fechahora, Analytics ofrece una variedad de funciones de fecha y hora que realizan una variedad de tareas útiles. Puede utilizar estas funciones al construir expresiones de fechahora.
Las funciones de fechahora, agrupadas por tarea, aparecen en la siguiente tabla. Puede ver la misma lista de funciones si filtra la lista desplegable Funciones en el Generador de expresiones por Fecha y Hora.
Tarea realizada |
Funciones |
---|---|
Devuelve la antigüedad, en días, de una fecha comparada con una fecha de corte o con la fecha actual. |
|
Calcula una fecha o la finalización de un mes, una cantidad específica de meses antes o después de una fecha |
|
Identifica el día de la semana o el mes del año de una fecha |
|
Devuelve un valor numérico (1 a 7) que representa el día de la semana de una fecha |
|
Extrae la fecha o la hora de un valor de fechahora |
|
Extraer el día, el mes, el año, la hora, los minutos o los segundos de un valor de fechahora |
|
Convierte los valores de fechahora de serie o los valores de fechahora numéricos o de carácter en valores de fechahora regulares con un tipo de datos de Fechahora |
|
Devuelve la fecha, la fechahora o la hora actual del sistema operativo |
Una cantidad de tiempo en comparación con un punto determinado en el tiempo
Al trabajar con fechahoras en las expresiones, es importante diferenciar entre períodos de tiempo y puntos en el tiempo, porque la diferencia requiere que se generen diferentes tipos de expresiones.
El valor de hora 08:30:00 se puede definir como un período de tiempo (8 horas) o como un punto en el tiempo (08:30:00 de la mañana). Si resta una hora de otra hora, el resultado es el tiempo transcurrido, que es un período de tiempo. Por ejemplo:
STOT(`T083000` - `T071500`) devuelve 01:15:00 (1 hora, 15 minutos, 0 segundos)
Si suma un número a una hora, o resta un número de una hora, el resultado es un ajuste negativo o positivo que crea otro punto en el tiempo; ya sea más temprano o más tarde que la hora inicial. Por ejemplo:
`T083000` - (1,00000000/24*1,5) devuelve 07:00:00 AM
El Formato de hora ( ) del primer ejemplo es hh:mm:ss y, en el segundo ejemplo, es hh:mm:ss PM. Ambos ejemplos implican una serie de cálculos de fechahora, que se explican en las siguientes secciones.
Del mismo modo, si resta una fecha de otra fecha, el resultado es una cantidad de días transcurridos, que es un período de tiempo. Por ejemplo:
`20141231` - `20141130` devuelve 31, la cantidad de días entre ambas fechas.
Si suma un número a una fecha, o resta un número de una fecha, el resultado es otro punto en el tiempo; ya sea más temprano o más tarde que la fecha inicial. Por ejemplo:
`20141231` - 31 devuelve 30 nov 2014, la fecha 31 días antes
Expresiones de fechahora válidas y no válidas
Las expresiones de fechahora comprenden una cantidad de combinaciones posibles de subtipos de fechahora (fecha, fechahora y hora) y operadores. No todas las combinaciones conforman expresiones válidas. Por ejemplo, se puede restar una fecha a otra para determinar la cantidad de días transcurridos, pero no es posible sumar dos fechas porque la operación no es lógica. Sin embargo, es posible sumar un número a una fecha para obtener una fecha posterior.
Las siguientes reglas se aplican a las expresiones de fechahora:
-
Es posible utilizar cualquier combinación de valores de fecha, fechahora u hora en una operación de resta o en una operación de comparación.
-
Es posible restar o sumar números enteros, números combinados y fracciones a los valores de fecha, fechahora u hora.
-
Los valores de fecha, fechahora u hora no se pueden sumar entre sí.
Si necesita sumar cantidades de tiempo, como las horas que se trabajaron en una semana, puede utilizar funciones de Analytics para extraer las porciones de horas, minutos y segundos como valores numéricos. Después, puede realizar cálculos con esos valores numéricos.
-
Los valores de fecha, fechahora u hora no se pueden comparar con números.
Aun si una expresión es válida, es posible que no siempre tenga una finalidad analítica útil. Por ejemplo, Analytics procesará la expresión Fecha_finalización > Hora_inicio, pero el resultado es siempre Verdadero y la comparación de una fecha con una hora no tiene ningún propósito lógico.
La siguiente tabla resume las combinaciones posibles con expresiones de fechahora e indica si cada combinación es válida o no válida; es decir, si Analytics la puede procesar.
|
Valor de fecha |
Valor de fechahora |
Valor de hora |
Número |
---|---|---|---|---|
Valor de fecha |
Válido: Restar Comparar |
Válido: Restar Comparar |
Válido: Restar Comparar |
Válido: Restar Sumar |
No válido: Sumar |
No válido: Sumar |
No válido: Sumar |
No válido: Comparar |
|
Valor de fechahora |
Válido: Restar Comparar |
Válido: Restar Comparar |
Válido: Restar Comparar |
Válido: Restar Sumar |
No válido: Sumar |
No válido: Sumar |
No válido: Sumar |
No válido: Comparar |
|
Valor de hora |
Válido: Restar Comparar |
Válido: Restar Comparar |
Válido: Restar Comparar |
Válido: Restar Sumar |
No válido: Sumar |
No válido: Sumar |
No válido: Sumar |
No válido: Comparar |
Tipos de datos que devuelven las expresiones de fechahora
Los tipos de datos de resultado que devuelven las expresiones de fechahora dependen de los valores y los operadores de la expresión:
Expresión de fechahora |
Tipo de datos de resultado |
---|---|
Resta (únicamente para valores de fechahora) Cualquier combinación de valores de fecha, fechahora u hora que se utilicen en una operación de resta. |
Numérico Una fecha de serie, una fechahora de serie o una hora de serie Si desea obtener más información, consulte Fechahoras de serie. |
Suma o resta (valores de fechahora y números) Números enteros, números combinados y fracciones sumados o restados a un valor de fecha, fechahora u hora. |
Fechahora Un subtipo de fecha, fechahora u hora del tipo de datos Fechahora |
Comparación (únicamente valores de fechahora) Cualquier combinación de valores de fecha, fechahora u hora que se utilicen en una operación de comparación. |
Lógico T (Verdadero) o F (Falso) |
Formato de literales de fechahora
- Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora de la siguiente tabla
La fecha debe estar delante de la hora y es necesario utilizar un separador entre ambas. Los separadores válidos son un espacio en blanco, la letra ‘t’ o la letra ‘T’.
- Valores de hora: debe especificar las horas con el reloj de 24 horas
Los desplazamientos respecto del Horario Universal Coordinado (UTC, por sus siglas en inglés) deben ir precedidos de un signo más (+) o un signo menos (-).
Formatos de ejemplo
Valores literales de ejemplo
YYYYMMDD
`20141231`
YYMMDD
`141231`
YYYYMMDD hhmmss
`20141231 235959`
YYMMDDthhmm
`141231t2359`
YYYYMMDDThh
`20141231T23`
YYYYMMDD hhmmss+/-hhmm
(desplazamiento UTC)
`20141231 235959-0500`
YYMMDD hhmm+/-hh
(UTC offset)
`141231 2359+01`
thhmmss
`t235959`
Thhmm
`T2359`
Nota
No use hh solo en el formato de la hora principal con datos que tienen un desplazamiento UTC. Por ejemplo, evite: hh+hhmm. Los resultados pueden no ser confiables.
Usar funciones para agregar cantidades de tiempo
No es posible sumar directamente valores de tiempo entre sí en Analytics. Sin embargo, puede utilizar funciones de Analytics para extraer las partes de las horas, los minutos y los segundos de las horas como valores numéricos y, después, realizar cálculos con esos valores numéricos. El ejemplo de los datos de la planilla de horas, a continuación, muestra este enfoque utilizando las horas y los minutos.
Son necesarios varios campos calculados para obtener los cálculos:
Nombre del campo calculado |
Expresión |
Descripción |
---|---|---|
Transcurrido |
STOT(Hora_finalización - Hora_inicio) |
Una operación de resta que calcula las horas trabajadas durante el día. La función STOT( ) convierte los resultados de valores de tiempo de serie en valores de tiempo regulares. |
Horas |
HOUR(Transcurrido) |
La porción de horas que se extrae como un valor numérico para el valor Transcurrido. |
Minutos |
MINUTE(Transcurrido) |
La porción de minutos que se extrae como un valor numérico del valor Transcurrido. (A los fines ilustrativos. No es necesario para el cálculo). |
Fracciones de hora |
MINUTE(Transcurrido)/60,000 |
La parte de los minutos extraída como un valor numérico del valor Transcurrido y calculada como una fracción decimal de 60 minutos. |
Horas+Fracciones de hora |
Horas + Fracciones_de_hora |
La suma de las horas numéricas y las fracciones de hora. |
Como último paso, es posible calcular el total del campo Horas+Fracciones de hora para calcular el total de horas de la semana:
Realizar ajustes positivos o negativos a las fechas, las fechahoras o las horas
Puede realizar ajustes positivos o negativos a los valores de fecha, fechahora u hora; por ejemplo, sumar o restar 15 días, o sumar o restar 3 horas. Realizar un ajuste positivo o negativo a una fecha es un proceso directo. Se suma o resta la cantidad necesaria de días para calcular una fecha sobre la base de otra:
- `20141231` + 15 regresa el valor 15 Ene 2015
- `20141231` - 15 regresa al valor 16 Dic 2014
Realizar un ajuste positivo o negativo a un valor de fechahora u hora es algo más complejo. No se pueden sumar valores de hora directamente entre sí, ni se pueden sumar valores de hora a un valor de fechahora. Por ejemplo, si intenta realizar un ajuste positivo de 3 horas utilizando cualquiera de las siguientes expresiones, obtendrá el error ‘Falta de coincidencia del tipo de expresión’:
- `t120000` + `t030000`
- `20141231 235959` + `t030000`
Puede crear una expresión válida agregando una hora de serie equivalente a 3 horas (0,125), pero puede resultar complejo crear expresiones de este tipo de forma manual porque es necesario que sepa cuál es el equivalente de la hora de serie:
- `t120000` + 0,125 regresa el valor 15:00:00
- `20141231 235959` + 0,125 regresa el valor 01 Ene 2015 02:59:59
Realizar un ajuste negativo a un valor de fechahora u hora es más sencillo; sin embargo, el resultado es un valor de fechahora o un valor de hora de serie que se debe convertir en un valor de fechahora u hora regular a fin de que sea más sencillo de leer:
- `t120000` - `t030000` regresa el valor 0,37500000000000
- STOT(`t120000` - `t030000`) regresa el valor 09:00:00
El siguiente método permite realizar más fácilmente ajustes positivos o negativos a los valores de fechahora u hora:
- Cree un campo calculado que determine el equivalente de hora de serie de la cantidad de tiempo que desea sumar o restar.
Por ejemplo: (1,00000000/24*2,5) produce el equivalente de hora de serie de dos horas y media (0,10416668). Es necesario especificar ‘1’ con la cantidad necesaria de ceros en los lugares decimales para asegurarse de que Analytics no redondee el resultado. Puede cambiar el número por el cual multiplica para obtener una cantidad adecuada de horas: (1,00000000/24*1), (1,00000000/24*8), (1,00000000/24*10,25), etc.
- En el mismo campo calculado, tome el valor de fechahora o de hora de origen y súmele o réstele la hora de serie calculada.
Por ejemplo: <campo de fecha o fechahora> + (1,00000000/24*2,5) = valores en el campo + 2-1/2 horas.
- Si desea sumar o restar tanto días como horas a un valor de fechahora, incluya la cantidad adecuada de días en el cálculo.
Por ejemplo: <campo fechahora> + 2 + (1,00000000/24*2,5) = valores en el campo + 2 días y 2-1/2 horas.
Ejemplos de expresiones de fechahora
La tabla que se incluye a continuación ofrece ejemplos de expresiones de fechahora válidas:
- Calcule los días transcurridos, los días y horas transcurridos o las horas transcurridas
- Realice ajustes positivos o negativos a las fechas, las fechahoras o las horas
- Compare fechas, fechahoras u horas
- Expresiones de fechahora que utilizan funciones de conversión
Nota
En una serie de ejemplos, los resultados se devuelven como fechahoras en serie; es decir, un valor de fecha, fechahora u hora representado como un entero una fracción decimal de 24 horas.
Puede utilizar las funciones STOD( ), STODT( ) y STOT( ) para convertir los resultados de fechahora de serie en valores de fechahora regulares. Si desea obtener más información, consulte Fechahoras de serie.
Calcule los días transcurridos, los días y horas transcurridos o las horas transcurridas
Expresión |
Resultado |
---|---|
`20141231` - `20141130` |
31 Los días transcurridos entre ambas fechas |
Fecha_finalización - Fecha_inicio |
Los días transcurridos entre los valores Fecha_finalización y Fecha_inicio |
`20141231 235959` - `20141130 114530` |
31,51005787037037 Los días y horas transcurridos entre las dos fechahoras, expresados como una fechahora de serie |
STRING(INT(`20141231 235959` - `20141130 114530`);5) + " " + TIME(STOT(MOD(`20141231 235959` - `20141130 114530`; 1))) |
31 12:14:29 Los días y horas transcurridos entre las dos fechahoras del ejemplo anterior, expresados como días, horas, minutos y segundos Supone el formato de visualización de hora actual de Analytics de hh:mm:ss |
Fechahora_finalización - Fechahora_inicio |
Los días y horas transcurridos entre los valores Fechahora_finalización y Fechahora_inicio, expresados como una fechahora de serie |
STRING(INT(Fechahora_finalización - Fechahora_inicio); 5) + " " + TIME(STOT(MOD(Fechahora_finalización - Fechahora_inicio; 1))) |
Los días y horas transcurridos entre los valores Fechahora_finalización y Fechahora_inicio, expresados como días, horas, minutos y segundos |
`T235959` - `T114530` |
0,51005787037037 El tiempo transcurrido entre las dos horas, expresado como una hora de serie |
STOT(0,51005787037037) |
12:14:29 La hora de serie del ejemplo anterior convertida a un valor de hora, con el formato de visualización de hora de Analytics actual |
STOT(`T235959` - `T114530`) |
12:14:29 El tiempo transcurrido entre dos horas, expresado como una hora con el formato de visualización de hora de Analytics actual |
Hora_finalización - Hora_inicio |
Las horas transcurridas entre los valores Hora_finalización y Hora_inicio, expresadas como una hora de serie |
Realice ajustes positivos o negativos a las fechas, las fechahoras o las horas
Expresión |
Resultado |
---|---|
Fecha_de_vencimiento + 15 |
Los valores del campo Fecha_de_vencimiento más 15 días |
`20141231` - 15 |
16 dic 2014 La fecha menos 15 días. Supone un formato de visualización de fecha actual de Analytics de DD MMM AAAA |
`20141231 235959` + (1,00000000/24*1,5) |
01 Ene 2015 01:29:59 La fechahora más una hora y media |
`20141231 235959` - (1,00000000/24*1,5) |
31 dic 2014 22:29:59 La fechahora menos 1 hora y media |
STODT(`20141231 235959` - `T013000`) |
31 dic 2014 22:29:59 La fechahora menos 1 hora y media |
`20141231 235959` + 2 + (1,00000000/24*1,5) |
03 Ene 2015 01:29:59 La fechahora mas 2 días y una hora y media |
`20141231 235959` - 2 - (1,00000000/24*1,5) |
29 Dic 2014 22:29:59 La fechahora menos 2 días y una hora y media |
`t235959` + (1,00000000/24*1,5) |
01:29:59 La hora más una hora y media |
`T173000` - (1,00000000/24*1,5) |
16:00:00 La hora menos una hora y media |
STOT(`T173000` - `T013000`) |
16:00:00 La hora menos una hora y media |
STOT(STOT(`T173000` - `T013000`) - `T010000`) |
15:00:00 La hora menos una hora y media, menos otra hora |
Compare fechas, fechahoras u horas
Expresión |
Resultado |
---|---|
`20141231` > `20141230` |
T (Verdadero) |
Fecha_de_vencimiento <= `20141231` |
Todos los valores del campo Fecha_de_vencimiento que caigan en 31 dic 2014 o antes |
Fecha_de_pago > Fecha_de_vencimiento |
Todos los valores del campo Fecha_de_pago que han superado la fecha de vencimiento |
CTOD(DATE(Pago_hora; "YYYYMMDD"); "YYYYMMDD") > Fecha_de_vencimiento |
Todos los valores del campo Pago_hora que han superado la fecha de vencimiento Para comparar valores de fechahora y fecha, primero se extrae la fecha como un valor de carácter de los valores de fechahora en el campo Pago_hora. A continuación, se vuelve a convertir en un valor de fecha para compararlo con la fecha de vencimiento. Para asegurarse de que los formatos de las fechas coincidan, se especifican formatos idénticos para el parámetro de formato de DATE( ) (el formato de salida) y el parámetro de formato de CTOD( ) (el formato de entrada). |
Hora_inicio_sesión > `t100000` |
Todos los valores de Hora_inicio_sesión posteriores a 10:00:00 |
Expresiones de fechahora que utilizan funciones de conversión
Expresión |
Resultado |
---|---|
STOT(CTOT("t120000") - CTOT("t090000") ) |
03:00:00 El tiempo transcurrido entre los dos valores de hora de carácter Los valores de hora de carácter primero se convierten en valores de hora regulares para poder utilizarlos en una operación de resta. Después, la hora de serie numérica que se obtiene de la operación de resta se convierte en un valor de hora regular. |
CTOT(TIME(`20141231 125959`)) < `T235959` |
T (Verdadero) Primero se extrae la hora como un valor de carácter del valor de fechahora y, después, se vuelve a convertir en un valor de hora para compararlo con 23:59:59. |