Cómo realizar un cambio en las fechas mediante el uso de funciones y operadores en Access

Este artículo se aplica a archivos de base de datos de Microsoft Access (.mdb o .accdb), o de proyecto de Microsoft Access (.adp).

Moderado: requiere aptitudes básicas de macro, codificación e interoperabilidad.

Resumen

En este artículo se describen las funciones y los operadores que están disponibles en Microsoft Office Access 2007, en Microsoft Office Access 2003 y en Microsoft Access 2002. Puede usar las funciones y los operadores para realizar un cambio en el tipo de datos Date/Time mediante consultas de ejemplo. Las consultas de ejemplo que puede usar para realizar un cambio en los valores de fecha usan las tablas de la base de datos de ejemplo Northwind.mdb.

Nota:

La base de datos de ejemplo Northwind para Access 2007 no usa los mismos campos que las versiones anteriores de la base de datos de ejemplo Northwind. No hay campos HireDate ni BirthDate en la tabla Employees que se incluye con la base de datos de ejemplo Northwind para Access 2007. Se ha cambiado el nombre del campo EmployeeID y se ha cambiado el nombre del campo FirstName.

Más información

Access proporciona operadores y funciones para validar o realizar un cambio en los campos con el tipo de datos Date/Time. En las consultas de ejemplo siguientes se usan las manipulaciones de fecha, las funciones de cálculo y los operadores de comparación que están disponibles en Access.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento. Sin embargo, no modificarán estos ejemplos para proporcionar una funcionalidad adicional o procesos de construcción para que se cumplan sus requisitos específicos.

Función Date(), función Now() y función Format()

SELECT Date(), Now();

La función Date() devuelve la fecha actual en formato de fecha corta. La función Now() devuelve la fecha actual con la hora.

SELECT Format(Now(), "dd mmmm aaaa");

Puede usar la función Format() con valores de fecha para especificar el formato de fecha que desea usar para la fecha. Esta consulta de ejemplo devuelve la fecha actual en formato de fecha larga (01 de diciembre de 2003).

Función Day(), función WeekDay(), función Month() y función Year()

SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year 
FROM Employees;

En la tabla Empleados, esta consulta devuelve la fecha de contratación, el día de la contratación, el día de la semana de contratación, el mes de contratación y el año de contratación de cada empleado. Observe que la función WeekDay() devuelve un valor numérico que indica el día de la semana.

Función DatePart()

SELECT *  FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;

En la tabla Empleados, esta consulta devuelve todos los empleados que nacieron antes del año 1960. La función DatePart() se puede usar para extraer la parte de la fecha especificada, como el día, el mes o el año.

Función DateDiff()

SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;

En la tabla Employees, esta consulta devuelve el identificador de empleado, el nombre, la fecha de nacimiento y la edad de cada empleado. La función DateDiff() devuelve la diferencia o el retraso de tiempo entre los dos valores de fecha especificados (en términos de día, mes, año o unidades de tiempo, como horas, minutos y segundos).

Función DateAdd()

SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;

En la tabla Empleados, esta consulta devuelve el identificador de empleado, el nombre, la fecha de contratación y la fecha en que el empleado finaliza 10 años de servicio con la empresa. La función DateAdd() incrementa una fecha en un número especificado de unidades de tiempo, como un día, un mes o un año y, a continuación, devuelve el valor resultante.

Puede agregar un valor numérico a un valor de fecha directamente. Haga esto para incrementar el valor de fecha en un día, como en el ejemplo siguiente:

SELECT Date() + 1 ;

Esta consulta incrementa la fecha actual en un día y, a continuación, devuelve el valor de fecha resultante.

Función DateValue()

SELECT DateValue("20 Nov 2003") AS ValidDate;

La función DateValue() comprueba si la cadena de entrada es una fecha válida. Si la cadena de entrada se reconoce como una fecha válida, la fecha se devuelve en formato de fecha corta. Si la cadena de entrada no se reconoce como una fecha válida, se devuelve la instrucción "Error de coincidencia de tipo de datos en la expresión de criterios". La función DateValue() reconoce una variedad de formatos de fecha, como mm dd aaaa, dd mm aaaa, dd mmm aaaa y dd mmm aaaa hh:mm:ss formato de fecha larga.

Función DateSerial()

SELECT DateSerial( 2003, 03, 1-1);

La función DateSerial() devuelve el valor de fecha de los parámetros de entrada especificados de year, month y day. Los parámetros de entrada pueden ser expresiones que implican operaciones aritméticas. La función DateSerial() evalúa las expresiones de los parámetros de entrada antes de devolver el valor de fecha resultante.

Esta consulta de ejemplo devuelve el último día del mes de febrero del año 2003. El último parámetro de entrada del día con el valor 1 se reduce en 1. El resultado es que el parámetro month se evalúa como 2.

Uso de operadores de comparación con valores de fecha

Puede usar los siguientes operadores de comparación para comparar valores de fecha en expresiones y en consultas:

  • < (menor que)
  • > (mayor que)
  • <= (menor o igual que)
  • >= (mayor o igual que)
  • <> (no es igual)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

Esta consulta usa el >operador de comparación = y el <operador de comparación = para comprobar si la fecha de contratación del empleado se encuentra en el intervalo de las dos fechas especificadas. Esta consulta captura los registros de todos los empleados contratados en el último trimestre del año natural de 1993.

SELECT * FROM Employees
WHERE HireDate <> Date();

Esta consulta usa el operador de comparación de desigualdad para capturar los registros de todos los empleados que tienen una fecha de contratación que no es igual a la fecha actual.

Función WeekdayName()

SELECT WeekdayName(1, False, 1) AS FirstWeekDayName;

La función WeekdayName() devuelve una cadena que indica el día de la semana, tal como se especifica en el primer parámetro. El día de la cadena de semana que se devuelve depende del tercer parámetro. Este parámetro establece el primer día de la semana. El segundo parámetro se establece en False para especificar que el nombre del día de la semana no se debe abreviar.

Esta consulta de ejemplo devuelve el valor sunday como el primer día de la semana.

Función MonthName()

SELECT MonthName(1);

La función MonthName() devuelve una cadena que indica el nombre del mes para el número de mes especificado del 1 al 12. El parámetro de entrada también puede ser una expresión, como en la consulta siguiente:

SELECT MonthName( DatePart("m", Date()) );

Esta consulta devuelve el nombre del mes actual.

Referencias

Para obtener más información, haga clic en los números de artículo siguientes para ver los artículos de Microsoft Knowledge Base:

  • 290178 Creación de una consulta que tenga parámetros para evaluar criterios complejos en Microsoft Access
  • 290190 Creación de dos funciones para calcular la edad en meses y años en Microsoft Access