Fechas y horas

NOW

Devuelve la fecha y la hora actuales: el momento en que empezó la transacción.

Sintaxis

NOW()
CURRENT_TIMESTAMP

NOW() da la fecha, la hora y la zona horaria, y CURRENT_TIMESTAMP es lo mismo según el estándar SQL. Solo la fecha, sin hora, la da CURRENT_DATE. Al resultado se le pueden sumar y restar intervalos: NOW() - INTERVAL '7 days' es hace una semana. Se usa a menudo como valor por defecto: created_at timestamptz DEFAULT NOW().

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.

Ahora mismo
SELECT NOW() AS now,
CURRENT_TIMESTAMP AS standard_name;
nowstandard_name
2026-09-14 12:42:53.677+022026-09-14 12:42:53.677+02

El resultado de abajo se guardó cuando se preparó la página. Pulsa «Ejecutar» para ver tu hora actual.

Hace una semana y dentro de una hora
SELECT NOW() - INTERVAL '7 days' AS week_ago,
NOW() + INTERVAL '1 hour' AS in_an_hour;
week_agoin_an_hour
2026-09-07 12:42:53.679+022026-09-14 13:42:53.679+02
Cuánto tiempo ha pasado desde cada pedido
SELECT id, created_at,
NOW() - created_at AS time_passed
FROM orders;
idcreated_attime_passed
12026-07-03 10:15:0073 days 02:27:53.681
22026-07-28 18:40:0047 days 18:02:53.681
32026-08-09 09:05:0036 days 03:37:53.681
42026-08-21 14:30:0023 days 22:12:53.681
52026-09-02 11:00:0012 days 01:42:53.681

Ten en cuenta

NOW() no cambia durante una transacción: el valor es el mismo en todas las filas y en todas las consultas entre BEGIN y COMMIT. El momento actual de verdad, cada vez, lo da clock_timestamp().

El aspecto del resultado depende de la zona horaria de la sesión: el mismo momento se muestra distinto en ordenadores distintos. Para guardar momentos, usa el tipo timestamptz.

Funciones relacionadas