Fechas · valor actual

CURRENT_DATE

Devuelve la fecha que el motor considera actual para la sesión o la transacción, sin incluir la hora.

Lectura: 6–8 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué devuelve CURRENT_DATE

CURRENT_DATE produce un valor de fecha correspondiente al día actual según el motor, la sesión y su configuración temporal. No incluye la hora.

Es útil para filtros relativos, valores predeterminados y consultas que deben adaptarse al día de ejecución. El resultado no debe escribirse como una fecha fija si quieres que cambie con el tiempo.

Sintaxis básica

SQL
SELECT CURRENT_DATE AS hoy;

En PostgreSQL y MySQL puede utilizarse como palabra clave. MySQL también admite CURRENT_DATE() y CURDATE(). SQLite reconoce CURRENT_DATE como valor especial asociado a sus funciones de fecha.

Ejemplo guiado

Al revisar esta guía, la base SQLite devolvió la siguiente fecha:

SQL
SELECT CURRENT_DATE AS hoy;
Resultado el 3 de agosto de 2026
hoy
2026-08-03

Cuando ejecutes la consulta otro día, el valor deberá ser distinto. El ejemplo muestra el resultado comprobado en la fecha de revisión, no una salida permanente.

Usarlo en un filtro

Registros anteriores a hoy
SELECT nombre, fecha_registro
FROM clientes
WHERE fecha_registro < CURRENT_DATE
ORDER BY fecha_registro
LIMIT 5;

La condición se evalúa cada vez que se ejecuta la consulta. En una base real, comprueba que fecha_registro tenga un tipo temporal adecuado y no sea un texto ambiguo.

La zona horaria importa. Cerca de medianoche, dos sesiones configuradas en zonas horarias distintas pueden considerar que están en días diferentes. Para procesos críticos, documenta qué zona usa la aplicación y la base.

Error frecuente

Sustituir la fecha actual por un literal fijo

Solo sirve para una fecha concreta
WHERE fecha_registro < '2026-08-03'

El literal no se actualiza mañana. Úsalo cuando el límite deba ser exactamente ese día. Utiliza CURRENT_DATE cuando la condición deba seguir el calendario del motor.

Comprueba lo aprendido

Básica · filtro temporal

Muestra los primeros registros anteriores a hoy

Devuelve nombre y fecha_registro de los clientes registrados antes de la fecha actual. Ordena de la fecha más antigua a la más reciente y limita el resultado a cinco filas.

Diferencias entre motores

PostgreSQL calcula los valores SQL de fecha y hora actuales de forma estable dentro de una transacción. MySQL devuelve la fecha en el contexto temporal de la sesión y ofrece sinónimos como CURDATE(). SQLite utiliza UTC para su valor especial CURRENT_DATE. Revisa la zona horaria cuando la diferencia de un día sea importante.

Qué debes recordar

  • Devuelve una fecha sin hora.
  • El valor se obtiene al ejecutar la consulta.
  • No se escribe entre comillas.
  • La zona horaria y las reglas del motor pueden influir en el día observado.

Conceptos relacionados

Fuentes técnicas consultadas

Se utilizaron para comprobar el valor, los sinónimos y el contexto temporal.