Diferencias de fecha
La función DATEDIFF calcula la diferencia entre dos valores de fecha y devuelve un entero (con cualquier componente de fracción truncado) en las unidades de fecha/hora especificadas. La forma general de la expresión es
DATEDIFF(datetime2, datetime1, “unit”).
donde datetime2 y datetime1 son variables de formato de fecha u hora (o valores numéricos que representan valores válidos de fecha/hora), y "unidad" es uno de los siguientes valores literales de cadena, entre comillas:
- Años
- Trimestres
- Meses
- Semanas
- días
- Horas
- Minutos
- Segundos
Ejemplo
DATA LIST FREE /date1 date2 (2ADATE10).
BEGIN DATA
1/1/2004 2/1/2005
1/1/2004 2/15/2005
1/30/2004 1/29/2005
END DATA.
COMPUTE years=DATEDIFF(date2, date1, "years").
- El resultado será la parte entera del número de años entre las dos fechas, con cualquier componente fraccional truncado.
- Un "año" se define como el mismo mes y día, un año antes o después del segundo argumento de fecha.
- Para los dos primeros casos, el resultado es 1, ya que en ambos casos el número de años es mayor o igual que 1 y menor que 2.
- Para el tercer caso, el resultado es 0, ya que la diferencia es un día menos de un año en base a la definición de año.
Ejemplo
DATA LIST FREE /date1 date2 (2ADATE10).
BEGIN DATA
1/1/2004 2/1/2004
1/1/2004 2/15/2004
1/30/2004 2/1/2004
END DATA.
COMPUTE months=DATEDIFF(date2, date1, "months").
- El resultado será la parte entera del número de meses entre las dos fechas, con cualquier componente fraccional truncado.
- Un "mes" se define como el mismo día del mes, un mes natural antes o después del segundo argumento de fecha.
- Para los dos primeros casos, el resultado será 1, ya que tanto el 1 de febrero como el 15 de febrero de 2004, son mayores o iguales a un mes y menos de dos meses después del 1 de enero de 2004.
- Para el tercer caso, el resultado será 0. Por definición, cualquier fecha de febrero de 2004 será inferior a un mes después del 30 de enero de 2004, lo que dará como resultado un valor de 0.