根据另一个表中的日期选择日期范围内的行。 (MYSQL)
问题描述:
我有两个表,它们共享一个链接这两个键。表A有一个日期栏(格式为MM/DD/YYYY),表B有一个格式为(YYYY-MM-DD HH:MM:SS)的日期栏。根据另一个表中的日期选择日期范围内的行。 (MYSQL)
我需要做的是选择所有表B中的,有一个关键的匹配表一和表A中发现
编辑中的日期字段30天的日期字段:两个变量都是VARCHAR处理,这是我目前的(在连接中使用别名formattedEffective的错误)。我认为如果我能以这种方式使用别名,下面的方法就行得通。
select *,
DATE_FORMAT(STR_TO_DATE(`Eff_date`, '%m/%d/%Y'), '%Y-%m-%d') as formattedEffective
from `customers`
right join `dispatch` on `customers`.`Member_no` = `dispatch`.`Member_no`
AND `dispatch`.`sortdate` > formattedEffective
AND `dispatch`.`sortdate` < DATE_ADD(formattedEffective,INTERVAL 30 DAY)
答
社区要求的是能够创建场景以给出问题的确定答案(创建表语句,示例数据等)。下面的方法是猜测。
查询所做的假设是eff_date是一个字符串,sortdate存储为MySQL日期(即date,datetime,timestamp)。
select d.*,
str_to_date(c.eff_date, '%m/%d/%Y')) as formattedEffective
from customer c
join dispatch d on ( d.member_no = c.member_no
and d.sortdate between str_to_date(c.eff_date, '%m/%d/%Y')
and str_to_date(c.eff_date, '%m/%d/%Y') + interval 30 day);
+0
这样做的伎俩......我不知道为什么我不认为只是在联合本身中使用别名的定义。太感谢了!!! – Bryant
你能分享一下你试过的吗?为了能够帮助您,我们必须查看包含少量数据的表格。 –
显示您到目前为止所尝试的内容。您的努力不会得到我们的帮助。 –
更新了我现在的查询(不要以为我可以用'formattedEffective'这个方式我想在那里。 – Bryant