我需要一个sql查询来查找employee表中的数据。 员工表中存在Startdate。 我需要在startdate中添加90天,然后我需要检查startdate是否在当前月份。
我确实尝试过以下查询:
SELECT *
FROM `employees`
WHERE DATE_ADD(str_to_date(startdate, '%m/%d/%Y'),INTERVAL 90 DAY) BETWEEN '09/01/2016' AND '09/30/2016'
但它没有给我预期的结果。(如果查询正确,我确实会显示数据。)
您好我确实更改了查询并运行,请查看结果。我也得到下个月的结果:(
这是查询 来自员工的SELECT id,startdate在DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01' ),INTERVAL 90天) - 本月开始 - 90天和DATE_SUB(LAST_DAY(NOW()),INTERVAL 90天)
答案 0 :(得分:1)
重述了我的询问......
如果事件发生在本月开始和结束前90天的日期之内
WHERE str_to_date(startdate, '%m/%d/%Y') between
DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 90 day) -- start of this month - 90 days
and DATE_SUB(LAST_DAY(NOW()), INTERVAL 90 day) -- End of this month - 90 days
或者,持续三个月
WHERE str_to_date(startdate, '%m/%d/%Y') between
DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 3 month) -- start of this month - 3 months
and DATE_SUB(LAST_DAY(NOW()), INTERVAL 3 month) -- End of this month - 3 months