首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IF中使用DATEDIFF获取列的MySQL

在IF中使用DATEDIFF获取列的MySQL
EN

Stack Overflow用户
提问于 2020-10-06 13:39:38
回答 1查看 41关注 0票数 0

我正在尝试使用DATEDIFF和IF函数获取列‘按时返回’

代码语言:javascript
复制
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

提前感谢大家!

EN

回答 1

Stack Overflow用户

发布于 2020-10-06 13:55:38

您不能在IF的结果中使用聚合函数。IF表达式应用于单行,聚合结果没有任何意义。

您还缺少两个表之间的连接条件。

你为DATEDIFF()使用的参数是不正确的,它们更适合于TIMESTAMPDIFF。DATEDIFF()只有两个参数,后一个应该是第一个。

我想你想要的是:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64219960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档