我有两个表,它们共享一个链接两者的键。表A具有日期列(格式为MM / DD / YYYY),表B具有格式的日期字段(YYYY-MM-DD HH:MM:SS)。
我需要做的是选择表B中的所有内容,它们在表A中的日期字段的30天内有一个密钥匹配表A和一个日期字段。
编辑:两个变量都是varchars,这是我目前所拥有的(在连接中使用别名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)
答案 0 :(得分:1)
社区要求的是能够创建一个场景来为您的问题提供明确的答案(创建表语句,示例数据等)。以下方法是推测。
查询所做的假设是eff_date是一个字符串,sortdate存储为MySQL日期(即日期,日期时间,时间戳)。
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 );