我有一个SQL查询,该查询必须返回过期的租金列表,并且知道我在Postgres中编写此查询,如下所示:
SELECT
CONCAT(customer.last_name, ', ' , customer.first_name) AS customer,
address.phone, film.title
FROM
rental
INNER JOIN
customer ON rental.customer_id = customer.customer_id
INNER JOIN
address ON customer.address_id = address.address_id
INNER JOIN
inventory ON rental.inventory_id = inventory.inventory_id
INNER JOIN
film ON inventory.film_id = film.film_id
WHERE
rental.return_date IS NULL
AND rental_date + INTERVAL film.rental_duration DAY < CURRENT_DATE
LIMIT 5;
但是当我在pgAdmin中运行此查询时,出现此错误:
错误:“电影”或附近的语法错误
第8行:AND租借日期+ INTERVAL电影。rental_durationDAY
出什么问题了?
答案 0 :(得分:1)
间隔添加的正确语法如下:select current_date + interval '1 day'
。您缺少一些撇号,因此它不能以这种方式工作。
如果将第8行更改为以下形式,那应该没问题:
AND rental_date + film.rental_duration < CURRENT_DATE
如果rental_duration
不是整数类型,请按照以下步骤操作:
AND rental_date + film.rental_duration::int < CURRENT_DATE
如果rental_date是时间戳记:
AND rental_date + interval '1 day' * film.rental_duration < CURRENT_DATE