到目前为止,我已经生成了下面的代码来尝试将相关数据拉到一起。
但是,“+7”函数产生了以下问题。
Registration date = '2018-01-01'
它正在推迟购买的日期 2018-04-08
,即只要一天中的某一天超过7天,则视为可接受。实际上,我要找的是在注册日后7天内购买的所有商品。
任何建议/帮助都将不胜感激。
select *
from purchases b
inner join registrations r
on r.customer_id = b.customer_id
and day(b.purchase_date) between d(r.account_opening_date) and day(r.account_opening_date) + 7
and r.account_opening_date >= '2018-01-01 00:00:00.0'
4条答案
按热度按时间gstyhher1#
你可以使用窗口功能
x7rlezfr2#
如果要比较的日期在不同的月份,则改用date\u add,day()将无法正常工作。
hiz5n14c3#
你可以简单地使用
+
:如果要在没有时间组件的情况下执行此操作,请使用
date()
功能:是否使用
<
或者<=
取决于“7天内”的确切解释。这个版本假设你真的需要7-8天。zf9nrax14#
听起来您需要使用date\u add和date mysql函数。