Contenido del curso
Primeros Pasos con Bases de Datos
Consultas y Manipulación de Datos
Relaciones y Modelado de Datos
Funciones, Operaciones y Vistas
- 18

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

Calcular días entre fechas con EPOCH en SQL
Viendo ahora - 20

Cómo unir columnas de texto con CONCAT en SQL
03:50 min - 21

Sentencias UPDATE y DELETE en PostgreSQL
05:54 min - 22

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

Vistas y funciones reutilizables en pgAdmin
08:09 min
Integraciones
- 24

Importar CSV a PostgreSQL con COPY
07:56 min - 25

Configura Jupyter Notebooks con PostgreSQL
04:58 min - 26

Consultas SQL de PostgreSQL en Jupyter
04:56 min - 27

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

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

Importancia de Postgres en el desarrollo profesional de software
01:54 min
Calcular días entre fechas con EPOCH en SQL
Resumen
Hacer cálculos directamente en una consulta SQL te ahorra pedirle a una API que procese fechas o duraciones. Con operadores como ROUND, EXTRACT y EPOCH puedes calcular cuántos días lleva rentada una película directamente sobre la tabla, sin mover datos de un lado a otro.
¿Por qué conviene comentar tus consultas SQL?
Antes de escribir la sentencia, vale la pena hablar de un hábito que muchos pasan por alto: comentar el código. En SQL, dejar un comentario arriba de cada consulta te permite reutilizarla más adelante sin tener que descifrar qué hacía.
No es lo mismo abrir un archivo con 30 queries sin contexto que uno donde cada bloque dice exactamente para qué sirve. Es una práctica que conviene adoptar desde que estás aprendiendo, porque tu yo del futuro lo va a agradecer.
¿Para qué sirven los comentarios en SQL? Sirven para documentar qué hace cada sentencia y poder reutilizarla. Se escriben con guiones dobles o con bloques y no afectan la ejecución de la consulta.
¿Cómo calcular los días entre dos fechas en SQL?
El objetivo es saber cuánto tiempo lleva una renta activa, comparando la fecha de devolución contra la fecha en que se rentó. Para eso necesitas combinar varios operadores en una sola línea.
La estructura básica empieza con un SELECT sobre rental_id como referencia, y a partir de ahí construyes el cálculo con tres piezas:
- EXTRACT, que saca un valor específico de una fecha o intervalo.
- EPOCH, una palabra reservada que convierte el tiempo en segundos para poder operarlo numéricamente.
- AGE, que entrega la diferencia entre dos fechas como un intervalo.
La consulta queda así:
sql SELECT rental_id, ROUND(EXTRACT(EPOCH FROM AGE(return_date, rental_date)) / 86400, 0) AS dias_rentados FROM rental;
¿Qué hace EXTRACT EPOCH dentro de la consulta?
EPOCH toma el intervalo entre return_date y rental_date y lo expresa en segundos. Sin esa conversión, el resultado vendría como un texto tipo "3 days 04:22:10", que no se puede dividir ni redondear con facilidad.
Al tenerlo en segundos, ya puedes hacer matemáticas normales sobre él.
¿Por qué se divide entre 86400?
Porque 86 400 es la cantidad de segundos que hay en un día: 60 segundos por 60 minutos por 24 horas. Es un número que conviene memorizar si trabajas con fechas en SQL, porque aparece todo el tiempo cuando necesitas convertir segundos a días.
¿Qué significa 86400 en SQL? Es el total de segundos en un día. Se usa para convertir diferencias de tiempo expresadas en segundos a días enteros, dividiendo el resultado de EPOCH entre 86400.
¿Cómo redondear resultados con ROUND en PostgreSQL?
La función ROUND recibe dos argumentos: el valor que quieres redondear y la cantidad de decimales que deseas conservar. Si pones ROUND(valor, 2), vas a obtener algo como 4.25 días. Si pones ROUND(valor, 0), te entrega solo 4.
Para este caso conviene usar cero decimales, porque normalmente no necesitas saber que una renta lleva 4.27 días, sino simplemente 4.
- Con dos decimales ves la fracción exacta de tiempo.
- Con cero decimales obtienes días enteros, más limpios para reportar.
- Puedes ajustar el número según el nivel de precisión que pida tu análisis.
Después de elegir la precisión, conviene revisar cómo se ve la columna en el resultado.
¿Cómo renombrar columnas con AS para mejorar la lectura?
Cuando ejecutas la consulta tal cual, la columna calculada aparece con un nombre genérico poco amigable. El operador AS te permite asignarle un alias legible, por ejemplo dias_rentados.
El cambio es puramente visual, pero hace que el resultado se entienda al instante, sobre todo cuando compartes la salida con alguien que no escribió la query.
¿Qué hace el operador AS en SQL? Asigna un alias a una columna o tabla en el resultado de la consulta. No modifica la base de datos, solo cambia cómo se muestra el nombre en la salida.
¿Cuándo conviene hacer cálculos en SQL y no en una API?
En la práctica, no vas a calcular diferencias de fechas todos los días. Pero cuando lo necesitas, resolverlo en SQL evita transferir miles de registros hacia tu backend solo para procesarlos ahí.
Si tu tabla tiene 16 000 registros de rentas, mover toda esa información a una API para calcular días rentados es desperdicio de recursos. La base de datos ya tiene los operadores listos para hacerlo en milisegundos.
La lógica es simple: deja que SQL haga lo que SQL hace bien, y reserva tu API para la lógica de negocio que realmente lo amerita. ¿Tú en qué casos prefieres calcular en SQL en lugar de en código? Cuéntame en los comentarios.