如何解决MySQL在IF中使用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
但是我得到的只是错误,而且我不太了解DATEDIFF的工作原理,甚至不知道是否可以在IF函数中使用COUNT
提前谢谢大家!
解决方法
由于IF
的结果,您不能使用聚合函数。 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。