Calcular con fechas
SQL · Unidad 14: Textos y fechas
- Plan completo
- SQL
- 9 ejercicios
La biblioteca del barrio tiene un solo ejemplar de cada libro, y por eso presta por 3 días. ¿Qué día vence cada libro que sigue fuera?
DATE recibe una fecha y, detrás, un cambio escrito como texto, con su signo, un número y la unidad en inglés. Devuelve otra fecha, ya en AAAA-MM-DD.
Camila tiene hasta hoy, 15 de enero. El plazo de Diego se acabó el 13. Esta forma de sumar días es de SQLite. En PostgreSQL, con una columna de tipo fecha, se escribe prestado + 3.
SELECT socio, prestado,
DATE(prestado, '+3 days') AS vence
FROM prestamos
WHERE devuelto IS NULL
ORDER BY vence;Devuelve
| socio | prestado | vence |
|---|---|---|
| Diego | 2026-01-10 | 2026-01-13 |
| Camila | 2026-01-12 | 2026-01-15 |
| Ana | 2026-01-13 | 2026-01-16 |
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Predice la salida
Un libro que hubiera salido el 30 de diciembre de 2025, con el mismo plazo de 3 días. ¿Qué devuelve esta consulta?
2. Completa el código
¿De quién es el libro que vence hoy, 15 de enero de 2026? Con un plazo de 3 días, es el que salió hace 3. Completa el cambio de fecha.
3. Predice la salida
El préstamo 1 salió el 2 de enero de 2026 y volvió el día 9. El préstamo 8 salió el 20 de diciembre de 2025 y volvió el 4 de enero de 2026. Alguien resta las dos columnas sin
JULIANDAY. ¿Qué devuelve esta consulta?4. Encuentra el bug
¿Cuántos días lleva fuera cada libro que no ha vuelto? Hoy es 15 de enero de 2026. La consulta devuelve a los tres socios con la columna
diasvacía. ¿Qué línea tiene el problema?5. Ordena las líneas
¿Qué libros de los que siguen fuera ya vencieron? Un libro que vence hoy, 15 de enero de 2026, todavía se puede devolver hoy, y no cuenta. Ordena la consulta. Sobran dos líneas.
6. Encuentra el caso que falla
Alguien calculó cuánto tardó en volver cada libro restando los días del mes, el de la devolución menos el de la salida. Con los cuatro préstamos devueltos de Ana y de Luis, tal como están en la base, acierta. ¿Con cuál de estas correcciones deja de acertar?
7. Ordena las líneas
La tienda escribe a quien lleva más tiempo sin volver. Ordena la consulta que da, por cada cliente que ha pedido algo, los días que han pasado desde su último pedido hasta hoy, 15 de enero de 2026. Primero quien lleva más, y los empates por el número de cliente. El pedido 12, que sigue con su fecha mal tecleada del día 20, se queda fuera, y con él la última compra de Luis. Sobran dos líneas.
8. Completa el código
El dueño pregunta solo por la última semana, del 9 al 15 de enero. Completa el paso que fabrica esos siete días.
9. Escribe el código
En la unidad pasada, el resumen por día saltaba del 4 al 9 de enero sin decir nada. Le faltaba el calendario, y ya lo tienes. El paso está escrito. Debajo, escribe la consulta que da cada día y cuántos pedidos entraron ese día, con un 0 donde no hubo ninguno. Dos columnas en ese orden, con el día más reciente arriba. El pedido 12, con su fecha del día 20, no encuentra día en este calendario y no se cuenta. Une el paso con el alias
cypedidoscon el aliasp.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.