Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Función CURDATE() de MySQL

La función `CURDATE()` de MySQL devuelve la fecha actual en el formato `AAAA-MM-DD`. Se utiliza habitualmente para recuperar y comparar la fecha actual en consultas SQL.

Utilización

La función `CURDATE()` se utiliza cuando necesitas trabajar con la fecha actual en operaciones con datos, como filtrar registros o establecer valores de fecha por defecto. No requiere argumentos y puede utilizarse en las cláusulas `SELECT`, `INSERT`, `UPDATE` y `WHERE`.

sql
CURDATE();

Esta sintaxis devuelve la fecha actual como un valor de fecha.

Nota: `CURDATE()` y `CURRENT_DATE()` son sinónimos y pueden utilizarse indistintamente.

Ejemplos

1. Recuperación básica de la fecha actual

sql
SELECT CURDATE();

Este ejemplo simplemente recupera la fecha actual del reloj del sistema del servidor MySQL.

2. Utilizar CURDATE() en una cláusula WHERE

sql
SELECT order_id, order_date
FROM orders
WHERE order_date = CURDATE();

En este ejemplo, se utiliza `CURDATE()` para filtrar los pedidos realizados en la fecha actual.

3. Insertar la fecha actual en una tabla

sql
INSERT INTO attendance (employee_id, date_checked_in)
VALUES (123, CURDATE());

Aquí se utiliza `CURDATE()` para insertar automáticamente la fecha actual en la columna `date_checked_in` cuando se añade un nuevo registro.

4. Consulta compleja con aritmética de fechas

sql
SELECT employee_id
FROM attendance
WHERE date_checked_in = DATE_SUB(CURDATE(), INTERVAL 1 DAY);

Este ejemplo recupera los registros de los empleados que se registraron el día anterior a la fecha actual.

Consejos y buenas prácticas

  • Garantiza la coherencia horaria. Asegúrate de que tu aplicación y el servidor MySQL utilizan la misma configuración de zona horaria para evitar resultados inesperados.
  • Utiliza `CURDATE()` para valores sólo de fecha. Si necesitas tanto la fecha como la hora, considera utilizar `NOW()` en su lugar.
  • Combínalo con las funciones de fecha. Utiliza `CURDATE()` junto con otras funciones de fecha como `DATE_ADD()` para cálculos de fecha más complejos.
  • Ten en cuenta el reparto implícito. Al comparar `CURDATE()` con columnas datetime, puede producirse una fundición implícita, lo que podría afectar al rendimiento. Para optimizar, convierte explícitamente la columna datetime en una fecha utilizando `CAST(datetime_column AS DATE)`.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis