sql - 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
.
推荐阅读
- laravel - 路由 [/download] 未定义。(看法:
- android - 如何添加请求正文?
- tableau-api - 不同窗格中类别的总数百分比
- javascript - 从 Electron 预加载脚本中检索更详细的错误
- servicestack - 如何使用自动查询返回多对多关系的嵌套对象
- php - 如何让 Mercure 服务器自动推送给事件订阅者?
- java - 无论单击 Jradiobutton 多少次,我怎样才能只增加一次计数器
- wordpress - 为什么我的网站超过最大问题?
- angularjs - ng-class 内容更改,但不应用 css 更改
- tmux - 运行安装 tmux 时出现 libevent 错误