我有一个mysql表,可以跟踪药物有效期。
DrugExpiry 表:
drugid, expiry_date
3 2016-08-10
2 2016-10-12
现在我想选择所有过期的药物和所有即将在六个月内过期的药物。
我尝试了以下选择,但它无法按预期工作。
SELECT * FROM lm_products
WHERE expiry_date= DATE_ADD(CURDATE(), INTERVAL 6 MONTH)
AND expiry_date<=DATE_SUB(CURDATE(), INTERVAL 1 DAY)
此选择返回一个空行。我哪里出错了?请帮忙。
答案 0 :(得分:1)
你只需要正确的比较。我认为这是逻辑:
SELECT *
FROM lm_products
WHERE expiry_date <= DATE_ADD(CURDATE(), INTERVAL 6 MONTH)
换句话说,您希望将来的有效期限早于六个月。
答案 1 :(得分:1)
这是非常简单的逻辑,
SELECT * FROM lm_products
WHERE expiry_date <= DATE_ADD(CURDATE(), INTERVAL 6 MONTH)
不需要DATE_SUB,将当前日期添加六个月并与expiry_date进行比较