Pasa Programación, apuntes y soluciones con Access
Página principal Mis apuntes de Access Mis utilidades Mis ejemplos Mis agradecimientos Enlaces a otras Webs

Fechas y horas en Access

  1. Índice.
  2. Qué es una fecha.
  3. Qué tipos de campo de fecha hay.
  4. 5 de enero o 1 de mayo.
  5. Operar con fechas.
  6. Bibliografía.

Operar con fechas

En el capítulo 1 vimos que una fecha se almacena internamente en Access como un número. Y la pregunta es: si es un número, ¿se pueden hacer operaciones matemáticas con las fechas? La respuesta es. .

Por ejemplo, si en la ventana Inmediato escribimos lo siguiente y pulsamos Enter al final, obtendremos los días que quedan desde la fecha de hoy hasta el 31 de diciembre de 2008.

? #12/31/2008# - Date()

Y si disponemos de 2 campos de fecha en una tabla, y hacemos una consulta en la que restemos a una fecha el valor de la otra, obtendremos la diferencia en días entre las 2 fechas. Pero no sólo podemos restar entre fechas, también sumar, multiplicar, dividir, o realizar cualquier otra operación, como si se tratara de un número. Las únicas limitaciones que nos podemos encontrar son los desbordamientos por tamaño, al igual que con los números, y otros errores similares al trabajo con números.

Pero además de realizar operaciones que nos devuelvan un número, también podemos devolver una fecha a partir de otra fecha. Por ejemplo, la siguiente función devuelve el último día del mes a partir de la fecha pasada:

Public Function UltimoDiaDelMes(Optional LaFecha)
    Dim dat As Date

    If IsMissing(LaFecha) Then
        dat = Date
    ElseIf IsDate(LaFecha) Then
        dat = LaFecha
    Else
        UltimoDiaDelMes = vbNullString
        Exit Function
    End If

    UltimoDiaDelMes = DateSerial(Year(dat), Month(dat) + 1, 0)
End Function

La función DateSerial() devuelve una fecha válida a partir del año, mes y día pasados como argumentos. En este caso, pasamos el día cero, que en teoría no existe, pero la función entiende que es el día anterior al primero del mes, y por eso devuelve el último día del mes anterior pasado como argumento. Y como decimos que use el mes de la fecha más uno, nos devuelve el mismo mes que el de la fecha.

Y si podemos calcular el último día del mes, podemos calcular también el primer día del mes, el inicio y fin de una semana, y cualquier otra cosa que se nos ocurra. En el ejemplo a descargar de estos apuntes, puedes encontrar más funciones relacionadas con las fechas.

Y si podemos calcular fechas, también podemos calcular horas o tiempo transcurrido entre horas. Sólo hay que tener en cuenta que las horas, minutos y segundos están almacenados en la parte decimal de un objeto Date, y que tendremos que multiplicar ese valor decimal para disponer de un número entero: x 24 para obtener las horas, x 24 x 60 para los minutos, x 24 x 60 x 60 para los segundos.

2008 Patxi Sanz
Libro de visitas
Hosted by www.Geocities.ws

1