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

PostgreSQL TIMESTAMP

PostgreSQL proporciona un sólido soporte para los tipos de datos de fecha y hora, incluido `TIMESTAMP SIN ZONA HORARIA`, que almacena la fecha y la hora sin zona horaria. Estas funciones son esenciales para tareas precisas de cronometraje y manipulación de datos.

Utilización

Los tipos de datos y funciones de fecha y hora, como `TIMESTAMP SIN HORA`, se emplean cuando necesitas almacenar datos precisos de fecha y hora o realizar operaciones con dichos datos. Son cruciales para las aplicaciones que requieren un cronometraje preciso, programación y análisis de datos históricos.

sql
SELECT column_name
FROM table_name
WHERE timestamp_column = TIMESTAMP 'YYYY-MM-DD HH:MI:SS';

En esta sintaxis, `TIMESTAMP 'AAAA-MM-DD HH:MI:SS'` se utiliza para definir una fecha y hora concretas que comparar con las entradas de `timestamp_column`.

Ejemplos

1. Uso básico de TIMESTAMP

sql
SELECT order_id
FROM orders
WHERE order_date = TIMESTAMP '2023-10-15 14:30:00';

Esta consulta selecciona los pedidos de la tabla `pedidos` en los que la `fecha_pedido` coincide con la marca de tiempo especificada.

2. Extraer partes de un TIMESTAMP

sql
SELECT EXTRACT(YEAR FROM order_date) AS order_year
FROM orders;

Aquí, la función `EXTRACT` recupera la parte del año de la columna `order_date` de cada fila de la tabla `orders`.

3. Calcular diferencias de fecha

sql
SELECT order_id, delivery_date - order_date AS delivery_duration
FROM orders;

Este ejemplo calcula la duración entre `fecha_pedido` y `fecha_entrega` de cada pedido y la devuelve como `duración_entrega`.

4. Utilizar la FECHA Y HORA CON HUSO HORARIO

sql
SELECT order_id
FROM orders
WHERE order_date AT TIME ZONE 'UTC' = TIMESTAMP '2023-10-15 14:30:00';

Este ejemplo demuestra el uso de `TIMESTAMP CON ZONA HORARIA` para tener en cuenta las diferencias de zona horaria convirtiendo `fecha_pedido` a una zona horaria específica.

5. Truncar fechas con DATE_TRUNC

sql
SELECT DATE_TRUNC('month', order_date) AS month_start
FROM orders;

Esta consulta utiliza la función `DATE_TRUNC` para truncar `order_date` al inicio del mes de cada registro.

Consejos y buenas prácticas

  • Utiliza la precisión adecuada. Considera la posibilidad de utilizar `TIMESTAMP CON ZONA HORARIA` si tu aplicación requiere conocer las zonas horarias.
  • Columnas de fecha y hora del índice. La indexación puede acelerar considerablemente las consultas que implican comparaciones de marcas de tiempo. Sin embargo, las estrategias de indexación pueden variar en función de los patrones de consulta y deben evaluarse caso por caso.
  • Sé coherente con los formatos. Utiliza siempre el mismo formato fecha-hora para evitar confusiones y errores.
  • Utiliza sabiamente las funciones de fecha. Funciones como `AGE`, `NOW` y `DATE_TRUNC` pueden simplificar cálculos de fechas complejos.
  • Cuidado con el horario de verano. Cuando se utiliza `TIMESTAMP CON HORA`, PostgreSQL gestiona los cambios de horario de verano ajustando automáticamente la hora almacenada para mantener la precisión.