2016-09-04 7 views
0

私は薬の有効期限を追跡するmysqlテーブルを持っています。前の日付をすべて選択し、mysqlを使用して6か月以内にすべての日付を選択してください

DrugExpiryテーブル:

drugid, expiry_date 
3  2016-08-10 
2  2016-10-12 

今、私はすべての期限切れの薬と6カ月以内に期限切れにしようとしているすべての薬を選択します。

次の選択を試みましたが、期待どおりに動作しません。

SELECT * FROM lm_products 
     WHERE expiry_date= DATE_ADD(CURDATE(), INTERVAL 6 MONTH) 
     AND expiry_date<=DATE_SUB(CURDATE(), INTERVAL 1 DAY) 

この選択は、空の行を返します。どこが間違っていますか?助けてください。

答えて

1

あなたは正しい比較が必要です。私はこれが論理だと思う:

SELECT * 
FROM lm_products 
WHERE expiry_date <= DATE_ADD(CURDATE(), INTERVAL 6 MONTH) 

言い換えれば、有効期限が6か月よりも前のものがすべて必要な場合。

+0

感謝を6ヶ月間、現在の日付を追加し、EXPIRY_DATEとの比較。 – Hanner

1

これは非常にシンプルなロジックで、

SELECT * FROM lm_products 
WHERE expiry_date <= DATE_ADD(CURDATE(), INTERVAL 6 MONTH) 

必要がありません。このためDATE_SUB

が、この作品

関連する問題