Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL在IF中使用DATEDIFF获取列_Mysql_Datediff - Fatal编程技术网

MySQL在IF中使用DATEDIFF获取列

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

我正在尝试使用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 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)该查询中有很多错误。请解释您尝试执行的操作。