ComeçarComece de graça

INTERVAL aritmética

Se você estivesse administrando uma loja de aluguel de DVDs de verdade, às vezes precisaria saber quais filmes estavam disponíveis para aluguel pelos clientes. No exercício anterior, vimos que alguns dos registros nos resultados tinham um valor NULL para o return_date. Isso porque o aluguel ainda estava pendente.

Cada aluguel na tabela film tem uma coluna rental_duration associada, que mostra quantos dias um DVD pode ser alugado por um cliente antes de ser considerado atrasado. Neste exemplo, você vai excluir filmes que têm um valor NULL para o return_date e também converter o rental_duration para um tipo INTERVAL. Aqui vai um lembrete de um jeito de fazer essa conversão.

SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'

Este exercício faz parte do curso

Funções para mexer nos dados no PostgreSQL

Ver curso

Instruções do exercício

  • Converta rental_duration multiplicando-o por 1 dia. INTERVAL
  • Tira o rental_date do return_date pra calcular o número de days_rented.
  • Excluir aluguéis com um valor de NULL para return_date.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

SELECT
	f.title,
 	-- Convert the rental_duration to an interval
    ___ '1' ___ * ___.___,
 	-- Calculate the days rented as we did previously
    r.return_date - ___.___ AS days_rented
FROM film AS f
    INNER JOIN inventory AS i ON f.film_id = i.film_id
    INNER JOIN rental AS r ON i.inventory_id = r.inventory_id
-- Filter the query to exclude outstanding rentals
WHERE r.return_date ___ ___ ___
ORDER BY f.title;
Editar e executar o código