我有一个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)此选择返回一个空行。我哪里出问题了?请帮帮忙。
发布于 2016-09-04 14:20:17
你只需要正确的比较。我认为这就是逻辑:
SELECT *
FROM lm_products
WHERE expiry_date <= DATE_ADD(CURDATE(), INTERVAL 6 MONTH) 换句话说,你想要的都是到期日期早于六个月的东西。
发布于 2016-09-04 14:25:15
这是非常简单的逻辑,
SELECT * FROM lm_products
WHERE expiry_date <= DATE_ADD(CURDATE(), INTERVAL 6 MONTH)对此不需要DATE_SUB,添加6个月的当前日期并与expiry_date进行比较
https://stackoverflow.com/questions/39317862
复制相似问题