Operaciones aritméticas en consultas SQL con fechas
Clase 19 de 29 • Curso de PostgreSQL
Contenido del curso
- 18

Fechas y horas en SQL: current_timestamp y función extract
04:55 - 19

Operaciones aritméticas en consultas SQL con fechas
05:49 - 20

Concatenación de cadenas en SQL con función CONCAT
03:51 - 21

Sentencias UPDATE y DELETE en PostgreSQL
05:54 - 22

Operadores NULLIF y COALESCE para gestionar datos nulos en SQL
07:30 - 23

Creación de vistas y funciones en PG Admin para reutilizar consultas
08:10
- 24

Importación de archivos CSV desde Excel a PostgreSQL
07:57 - 25

Instalación y configuración de Jupyter Notebooks para PostgreSQL
04:59 - 26

Conectar PostgreSQL con Jupyter Notebooks usando Python
04:57 - 27

Diferencias entre Postgres y MySQL para elegir la base de datos correcta
03:07 - 28

Tipos de datos únicos en PostgreSQL: JSON B, arrays y UUID
03:13 - 29

Importancia de Postgres en el desarrollo profesional de software
01:55
Aprender a realizar operaciones aritméticas directamente en consultas SQL es increíblemente útil para optimizar procesos. Una tarea común es determinar el tiempo transcurrido entre dos fechas, algo que recuerda a fórmulas que vemos en Excel pero aplicadas a SQL. Vamos a explorar cómo hacerlo paso a paso usando funciones clave como ROUND, EXTRACT, epoch y operadores matemáticos sencillos.
¿Qué ventaja tiene usar comentarios en sentencias SQL?
Antes de mostrar cómo calcular días, es importante resaltar una buena práctica muy útil: agregar comentarios en las consultas. Incorporar comentarios ayuda enormemente a reutilizar sentencias SQL ya creadas y facilita el entendimiento y organización. Aunque en otras áreas del código puede ser negligente, en SQL esto es particularmente valioso y bien recomendado.
¿Cómo calcular días entre dos fechas usando SQL?
La necesidad aquí es simple pero en extremo práctica: determinar cuántos días ha durado una renta. Para lograrlo, la consulta utiliza:
- El operador
SELECTpara escoger campos específicos. - La función
ROUNDpara redondear la cantidad de días a enteros o decimales según se necesite. - El operador
EXTRACTconepoch, que convierte tiempos a segundos desde un punto específico.
La consulta SQL escrita pasaría a verse así:
SELECT rental_id,
ROUND(
EXTRACT(epoch FROM AGE(return_date, rental_date)) / 86400, 2
) AS "días rentados"
FROM rental;
Aquí explicamos brevemente cada elemento clave:
- EXTRACT(epoch): convierte la diferencia temporal en segundos, facilitando la comparación.
- AGE(return_date, rental_date): calcula la diferencia entre dos fechas.
- 86400: representa la cantidad total de segundos en un día (24 horas).
- ROUND(valor, decimales): redondea el resultado, adaptándose según la precisión deseada.
¿Cómo ajustar la precisión del resultado?
Dependiendo del detalle que necesites, cambiar la precisión es sencillo:
- Un valor de precisión de
2muestra decimales: útil para resultados como "2.5 días". - Un valor de
0ofrece resultados enteros: ideal cuando solo cuenta el día completo.
Ajustas simplemente el segundo parámetro de ROUND según requieras:
ROUND(
EXTRACT(epoch FROM AGE(return_date, rental_date)) / 86400, 0
)
Esto asegura que tus resultados se ajusten exactamente al nivel de detalle que buscas.
¿Cuándo es ideal usar operaciones aritméticas en SQL?
Aunque quizá no se utilicen constantemente, conocer operaciones aritméticas en SQL es esencial. Estas prácticas eliminan la necesidad de realizar cálculos externos en APIs o aplicaciones. Esto significa menos transferencia de datos, menos procesamiento innecesario y resultados rápidos y eficientes directamente desde tu base de datos.
¿Qué otros usos conoces para operaciones aritméticas en SQL? ¡Comparte tus experiencias en los comentarios!