在将两个日期之间的差异计算为天数时,通过使用 MySQL Datediff() 函数,我遇到了一些问题,下面给出了 SQL 代码。
select datediff((select curdate()),
(select Company.CreatedOn
from
dbname.company
inner join
dbname.user
on
user.company_id = company.company_id
))
我得到的结果如下,
Error Code: 1242 Subquery returns more than 1 row
我确实理解错误,但我不能使用任何 id 来指出如下,
select datediff
(
(select curdate()),
(select Company.CreatedOn
from
dbname.company
inner join
dbname.user
on
user.company_id = company.company_id
where
company.company_id = 17)
);
当我运行这个查询时,我得到如下输出,
38
我需要选择的用户取决于注册时间超过 365 天的公司。
需要显示所有注册时间超过365天的公司,我在代码中没有提到这个条件,
我需要解决子查询结果,datediff 函数应该与所有公司 CreatedOn 值进行比较,并且只计算存在超过 365 天的公司。
任何帮助将不胜感激。
呃,为什么不只是
Aaron 的回答基本上是正确的,但我不建议在 WHERE 子句中使用DATEDIFF,因为它可能会强制执行表扫描。相反,我建议这样做
您可以进一步重构查询,如下所示: