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.