Funciones de agregación

Las funciones de agregación generan intervalos de fecha y hora a partir de valores que no han sido leídos por los formatos de entrada de fecha y hora.

  • Todas las funciones de agregación empiezan por DATE o TIME, en función de si se solicita una fecha o un intervalo de tiempo. Esto va seguido de una subfunción que corresponde al tipo de valores encontrados en los datos.
  • Las subfunciones se separan de la función mediante un punto (.) y van seguidas de una lista de argumentos especificada entre paréntesis.
  • Los argumentos para las funciones DATE y TIME deben estar separados por comas y deben resolverse en valores enteros.
  • Las funciones que contienen un argumento de día -- por ejemplo, DATE.DMY(d,m,y)-- comprueban la validez del argumento. El valor del día debe ser un entero entre 0 y 31. Si se encuentra un valor no válido, se muestra un aviso y el valor se establece en perdido del sistema. Sin embargo, si el valor de día no es válido para un mes determinado, por ejemplo, 31 en septiembre, abril, junio y noviembre o 29 a 31 en febrero en años no bisiestos, la fecha resultante se coloca en el mes siguiente. Por ejemplo, DATE.DMY(31, 9, 2006) devuelve el valor de fecha para el 1 de octubre de 2006. Un valor de día de 0 devuelve el último día del mes anterior.

DATE.DMY. DATE.DMY(día,mes,año). Numérico. Devuelve un valor de fecha correspondiente al día, mes y año indicados. Los argumentos deben ser evaluados como enteros. El día debe estar entre 0 y 31, el mes entre 1 y 13, y, por último, el año debe ser un entero de cuatro dígitos mayor que 1582. Para mostrar el resultado como una fecha, asigne un formato de fecha a la variable de resultado.

DATE.MDY. DATE.MDY(mes,día,año). Numérico. Devuelve un valor de fecha correspondiente al mes, día y año indicados. Los argumentos deben ser evaluados como enteros. El día debe estar entre 0 y 31, el mes entre 1 y 13, y, por último, el año debe ser un entero de cuatro dígitos mayor que 1582. Para mostrar el resultado como una fecha, asigne un formato de fecha a la variable de resultado.

DATE.MOYR. DATE.MOYR(mes,año). Numérico. Devuelve un valor de fecha correspondiente al mes y año indicados. Los argumentos deben ser evaluados como enteros. El mes debe estar entre 1 y 13 y el año debe ser un entero de cuatro dígitos mayor que 1582. Para mostrar el resultado como una fecha, asigne un formato de fecha a la variable de resultado.

DATE.QYR. DATE.QYR(trimestre,año). Numérico. Devuelve un valor de fecha correspondiente al trimestre y año indicados. Los argumentos deben ser evaluados como enteros. El trimestre debe estar entre 1 y 4 y el año debe ser un entero de cuatro dígitos mayor que 1582. Para mostrar el resultado como una fecha, asigne un formato de fecha a la variable de resultado.

DATE.WKYR. DATE.WKYR(núm_semana,año). Numérico. Devuelve un valor de fecha correspondiente al núm_semana y año indicados. Los argumentos se deben resolver en enteros, con weeknum entre 1 y 53, y year como un entero de cuatro dígitos mayor 1582. El valor de fecha devuelto representa el primer día de la semana especificada para ese año. La primera semana empieza el 1 de enero de cada año, de forma que la fecha devuelta para cualquier valor de semana diferirá entre años. Para mostrar el resultado como una fecha, asigne un formato de fecha a la variable de resultado.

DATE.YRDAY. DATE.YRDAY(año,núm_día). Numérico. Devuelve un valor de fecha correspondiente al año y núm_día indicados. Los argumentos deben ser evaluados como enteros. El valor núm_día debe estar entre 1 y 366 y el año debe ser un entero de cuatro dígitos mayor que 1582. Para mostrar el resultado como una fecha, asigne un formato de fecha a la variable de resultado.

TIME.DAYS. TIME.DAYS(días). Numérico. Devuelve un intervalo de tiempo correspondiente al número de días indicado. El argumento debe ser numérico. Para visualizar el resultado como un tiempo, asígnele un formato de tiempo a la variable de resultado.

TIME.HMS. TIME.HMS(horas[,minutos,segundos]). Numérico. Devuelve un intervalo de tiempo correspondiente al número de horas, minutos y segundos indicados. Los argumentos de minutos y los segundos son opcionales. Los minutos y segundos se deben resolver a números inferiores a 60 si cualquier argumento de orden superior no es cero. Todos los argumentos excepto el último argumento distinto de cero deben evaluarse como enteros. Por ejemplo, TIME.HMS(25.5) y TIME.HMS(0,90,25.5) son válidos, mientras TIME.HMS(25.5,30) y TIME.HMS(25,90) son inválidos. Todos los argumentos deben evaluarse como todos positivos o todos negativos. Para visualizar el resultado como un tiempo, asígnele un formato de tiempo a la variable de resultado.

Ejemplo

DATA LIST FREE
  /Year Month Day Hour Minute Second Days.
BEGIN DATA
2006 10 28 23 54 30 1.5
END DATA.
COMPUTE Date1=DATE.DMY(Day, Month, Year).
COMPUTE Date2=DATE.MDY(Month, Day, Year).
COMPUTE MonthYear=DATE.MOYR(Month, Year).
COMPUTE Time=TIME.HMS(Hour, Minute, Second).
COMPUTE Duration=TIME.DAYS(Days).
LIST VARIABLES=Date1 to Duration.
FORMATS
  Date1 (DATE11) Date2 (ADATE10) MonthYear (MOYR8)
  Time (TIME8) Duration (Time8).
LIST VARIABLES=Date1 to Duration.

***LIST Results Before Applying Formats***
       Date1        Date2    MonthYear     Time Duration
 13381372800  13381372800  13379040000    86070   129600

***LIST Results After Applying Formats***
      Date1      Date2 MonthYear     Time Duration
28-OCT-2006 10/28/2006  OCT 2006 23:54:30 36:00:00
  • Puesto que las fechas y horas se almacenan internamente como un número de segundos, antes de aplicar los formatos de fecha u hora adecuados, todos los valores calculados se muestran como números que indican el número respectivo de segundos.
  • Los valores internos para Date1 y Date2 son exactamente iguales. La única diferencia entre DATE.DMY y DATE.MDY es el orden de los argumentos.