MySQL在IF中使用DATEDIFF获取列
我正在尝试使用DATEDIFF和IF函数获取列“按时返回”MySQL在IF中使用DATEDIFF获取列,mysql,datediff,Mysql,Datediff,我正在尝试使用DATEDIFF和IF函数获取列“按时返回” SELECT IF(DATEDIFF(day, rental.rental_date, rental.return_date) <= film.rental_duration, (COUNT(rental.rental_id) AS 'Returned On Time')) FROM rental, film 选择 IF(DATEDIFF(day,rental.rental\u date,rental.return\u
SELECT
IF(DATEDIFF(day, rental.rental_date, rental.return_date) <= film.rental_duration,
(COUNT(rental.rental_id) AS 'Returned On Time'))
FROM rental, film
选择
IF(DATEDIFF(day,rental.rental\u date,rental.return\u date)如果IF
,则不能使用聚合函数。如果表达式应用于一行,则聚合结果没有意义
您还缺少两个表之间的连接条件
您用于DATEDIFF()
的参数不正确,它们更适合于TIMESTAMPDIFF。DATEDIFF()
只接受两个参数,后面的参数应该是第一个
我想你想要的是:
SELECT SUM(TIMESTAMPDIFF(day, rental.rental_date, rental.return_date) <= film.rental_duration) AS returned_on_time
FROM rental
JOIN film ON rental.film_id = film.id
选择SUM(TIMESTAMPDIFF(day,rental.rental\u date,rental.return\u date)该查询中有很多错误。请解释您尝试执行的操作。