2016-09-04 3 views
0

Ich habe eine MySQL-Tabelle, die Drogen Ablaufdaten verfolgen würde.Wählen Sie alle vorherigen Daten und wählen Sie alle Daten innerhalb von 6 Monaten mit mysql

DrugExpiry Tabelle:

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

Jetzt möchte ich alle abgelaufenen Drogen und alle Medikamente auszuwählen, die innerhalb von sechs Monaten auslaufen werden.

Ich habe versucht, die folgende Auswahl, aber es funktioniert nicht wie erwartet.

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

Diese Auswahl gibt eine leere Zeile zurück. Wo gehe ich falsch? Bitte helfen Sie.

Antwort

1

Sie brauchen nur die richtigen Vergleiche. Ich denke, das ist die Logik:

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

Mit anderen Worten: Sie alles dessen wollen Ablaufdatum ist frühestens sechs Monate in die Zukunft.

+0

Dank vergleichen. – Hanner

1

Dies ist sehr einfache Logik,

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

Keine Notwendigkeit DATE_SUB für diesen, für sechs Monate aktuelles Datum hinzufügen und das funktioniert mit EXPIRY_DATE

Verwandte Themen