在 sql 中调用本机函数'DATEDIFF'中的参数计数不正确



我应该使用什么命令来根据这个问题进行输出:

显示加入会员超过700天的客户的所有价值,直到今天

这是我创建的表:

表客户

我尝试过使用DATEDIFF()的其他引用,但它总是无效的:

SELECT * FROM Customers where DATEDIFF(DAY,customer_join,GETDATE())>700;

在MySQL/MariaDB中,与SQL Server不同,DATEDIFF()只接受两个参数,并返回它们之间的整数天数。我们有timestampdiff(),它有三个参数。

此外,getdate()在MySQL中不是一个东西(这是一个定制的SQL Server函数(。

这里并不需要日期函数。我会用简单的数据算法来表达这个逻辑:

select *
from customers
where customer_join < current_date - interval 700 day

该表达式可以利用customer_join上的索引。

根据是否要考虑customer_join的时间部分(如果有(,可能需要使用now()而不是current_date

最新更新