In meinem Tisch habe ich ein Feld mit dem Namen eventdate
in datetime
Format wie 2010-05-11 00:00:00
.
Wie mache ich eine Abfrage, damit sie einen Tag zum eventdate
Beispiel hinzufügt , wenn heute ist 2010-05-11
, möchte ich in where
Klausel anzeigen, um alle Datensätze mit dem Datum von morgen zurückzugeben.
Aktualisieren:
Ich habe es versucht:
select * from fab_scheduler where custid = 1334666058 and DATE_ADD(eventdate, INTERVAL 1 DAY)
Aber leider gibt es den gleichen Datensatz zurück, auch wenn ich ein Intervall größer als 1 hinzufüge.
Ergebnis:
2010-05-12 00:00:00
Aber ich möchte nur Datensätze mit dem Datum von morgen auswählen.
select * from fab_scheduler where custid = 1334666058 and DATE(DATE_ADD(eventdate, INTERVAL 1 DAY)) = CURRENT_DATE
aber jetzt gibt es eine leere Ergebnismenge zurück :(-1
, um mit übereinzustimmenCURRENT_DATE
. Versuchen Sie es mit der aktualisierten Abfrage.Probieren Sie es aus, denn so würde ich es machen :)
SELECT * FROM fab_scheduler WHERE custid = '123456' AND CURDATE() = DATE(DATE_ADD(eventdate, INTERVAL 1 DAY))
quelle
eventdate
wird niemals gleich seineventdate + 1 day
. Ich denke, Sie wolltenCURDATE()
dort verwenden.Es ist möglich, MySQL-spezifischen Syntaxzucker zu verwenden:
SELECT ... date_field + INTERVAL 1 DAY
Sieht viel hübscher aus als die Funktion DATE_ADD
quelle
Wenn Sie NOW () verwenden können, ist dies die einfachste Form:
SELECT * FROM `fab_scheduler` WHERE eventdate>=(NOW() - INTERVAL 1 DAY)) AND eventdate<NOW() ORDER BY eventdate DESC;
Mit MySQL 5.6+ Abfrage sollte abowe tun. Abhängig vom SQL Server müssen Sie möglicherweise
CURRDATE()
anstelle vonNOW()
- verwenden. Dies ist ein Alias fürDATE(NOW())
und gibt nur den Datumsteil desdatetime
Datentyps zurück.quelle
Wie wäre es damit:
select * from fab_scheduler where custid = 1334666058 and eventdate = eventdate + INTERVAL 1 DAY
quelle
Sie können dies versuchen:
SELECT DATE(DATE_ADD(m_inv_reqdate, INTERVAL + 1 DAY)) FROM tr08_investment
quelle
Oder einfacher:
quelle