Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL CURRENT_TIMESTAMP

PostgreSQL proporciona varias funciones de fecha para manejar y manipular valores de fecha y hora. Entre ellas, `CURRENT_TIMESTAMP` se utiliza para obtener la fecha y hora actuales, con la información del huso horario, en el momento en que se ejecuta la función.

Utilización

La función `CURRENT_TIMESTAMP` se utiliza cuando necesitas capturar el momento exacto en que se realiza una operación, como al registrar eventos o establecer valores por defecto para columnas de marca de tiempo.

sql
SELECT CURRENT_TIMESTAMP;

Esta sintaxis recupera la fecha y hora actuales, incluida la zona horaria, en el momento en que se ejecuta esta consulta.

Ejemplos

1. Recuperación básica de la marca de tiempo actual

sql
SELECT CURRENT_TIMESTAMP;

Este comando devuelve la fecha y hora actuales, incluida la información de la zona horaria, en el momento de la ejecución.

2. Insertar la marca de tiempo actual en una tabla

sql
INSERT INTO logs (event_description, event_time)
VALUES ('User logged in', CURRENT_TIMESTAMP);

Este ejemplo muestra la inserción de la marca de tiempo actual en la tabla `logs`, capturando el momento exacto en que se produce un evento.

3. Establecer el valor por defecto de una columna

sql
CREATE TABLE orders (
    order_id SERIAL PRIMARY KEY,
    order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Aquí, la tabla `orders` se crea con una columna `order_time` que almacena automáticamente la marca de tiempo actual como valor por defecto cuando se inserta un nuevo registro.

Consejos y buenas prácticas

  • Conocimiento del huso horario: Recuerda que `CURRENT_TIMESTAMP` devuelve la hora con la información de la zona horaria, lo que es crucial para las aplicaciones que abarcan varias zonas horarias.
  • Usar por defecto: Utiliza `CURRENT_TIMESTAMP` como valor por defecto para las columnas de fecha y hora, para garantizar la integridad de los datos y el seguimiento automático del tiempo.
  • Evita las llamadas frecuentes: Minimiza el número de llamadas a `CURRENT_TIMESTAMP` en una misma transacción para evitar valores de tiempo incoherentes.
  • Control de precisión: Si es necesario, especifica la precisión con `CURRENT_TIMESTAMP(precision)` para controlar el número de segundos fraccionarios. Por ejemplo:
sql
SELECT CURRENT_TIMESTAMP(2);

Recupera la marca de tiempo actual con una precisión de hasta dos fracciones de segundo.

Notas adicionales

  • Característica estándar de SQL: `CURRENT_TIMESTAMP` es una característica estándar de SQL y no es exclusiva de PostgreSQL. Esto puede ser beneficioso para los usuarios que trabajan con varios sistemas de bases de datos.
  • Comparación con funciones similares: Los usuarios deben tener en cuenta que `CURRENT_TIMESTAMP` es similar a funciones como `NOW()` o `CURRENT_TIME`, siendo `NOW()` un alias de `CURRENT_TIMESTAMP` en PostgreSQL, mientras que `CURRENT_TIME` sólo devuelve la hora actual.