Fechas y horasestándar SQL

CURRENT_DATE

Devuelve la fecha de hoy, sin la hora.

Sintaxis

CURRENT_DATE

Se escribe sin paréntesis, como una palabra. El tipo del resultado es date, así que se le suman días enteros: CURRENT_DATE + 7 es dentro de una semana. Igual que NOW(), el valor es el mismo durante toda la transacción y depende de la zona horaria de la sesión: para alguien ya es mañana.

Datos para los ejemplos

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

Hoy
SELECT CURRENT_DATE AS today;
today
2026-09-14

Pulsa «Ejecutar» para ver tu fecha.

Dentro de una semana y hace un mes
SELECT CURRENT_DATE + 7 AS next_week,
CURRENT_DATE - INTERVAL '1 month' AS month_ago;
next_weekmonth_ago
2026-09-212026-08-14 00:00:00
Cuántos días han pasado desde cada pedido
SELECT id, created_at,
CURRENT_DATE - created_at::date AS days_ago
FROM orders;
idcreated_atdays_ago
12026-07-03 10:15:0073
22026-07-28 18:40:0048
32026-08-09 09:05:0036
42026-08-21 14:30:0024
52026-09-02 11:00:0012

La diferencia entre dos fechas es un número entero de días.

Ten en cuenta

Sin paréntesis: CURRENT_DATE() da el error syntax error at or near "(".

CURRENT_DATE - INTERVAL '1 month' ya no es un date, sino un timestamp. Si necesitas una fecha sin más, añade ::date.

Con una columna timestamp, compara por rango: created_at = CURRENT_DATE solo encuentra los momentos de la medianoche exacta. Para hoy: created_at >= CURRENT_DATE AND created_at < CURRENT_DATE + 1.

Funciones relacionadas

Más detalles en el curso