MySQL: in der nähe des heutigen datums
Manfred
- datenbank
0 Vinzenz Mai2 JCB0 Ilja
Hallo,
ich will sein SELECT bauen, dass mir Datensätze mit dem heutigen Datum zurückgibt.
Die Datensätze können alle möglichen Datum haben, in der Vergangenheit sowie auch in der Zukunft.
Gibt es also nun keine Datensätze für das heutige Datum, dann soll mir das SELECT Datensätze zurückgeben, die nahe an dem heutigen Datum liegen, aber nur wie funktioniert dies?
Ich habe auch schon nach "near" gesucht, aber konnte da leider nichts finden.
lg
Manfred
Hallo
Gibt es also nun keine Datensätze für das heutige Datum, dann soll mir das SELECT Datensätze zurückgeben, die nahe an dem heutigen Datum liegen, aber nur wie funktioniert dies?
In einem einzigen SELECT? Warum?
Schreibe eine entsprechende Stored procedure (setzt MySQL 5.x voraus) und nutze die Datums- und Zeitfunktionen von MySQL. Die Verwendung von BETWEEN käme mir auch noch in den Sinn.
Freundliche Grüße
Vinzenz
Hallo,
Hi!
ich will sein SELECT bauen, dass mir Datensätze mit dem heutigen Datum zurückgibt.
Die Datensätze können alle möglichen Datum haben, in der Vergangenheit sowie auch in der Zukunft.
Gibt es also nun keine Datensätze für das heutige Datum, dann soll mir das SELECT Datensätze zurückgeben, die nahe an dem heutigen Datum liegen, aber nur wie funktioniert dies?
Ist eigentlich ganz einfach, sofern ich Dich richtig verstanden habe. Natürlich müsstest Du schon festlegen, wie groß die Differenz zum heutigen Datum werden darf. Für einen Tag Differenz sähe das z.B. so aus:
SELECT *
FROM Tabelle
WHERE DATEDIFF(day, Tabelle.Datum, GETDATE()) <= 1
OR DATEDIFF(day, GETDATE(), Tabelle.Datum) <= 1
Oder anders mit der DATEADD-Funktion und BETWEEN:
SELECT *
FROM Tabelle
WHERE Tabelle.Datum BETWEEN DATEADD(day, -1, GETDATE()) AND DATEADD(day, 1, GETDATE())
Erläuterungen zu DATEDIFF, DATEADD und BETWEEN möcht ich Dich bitten der SQL-Referenz zu entnehmen :).
Gruß, Jan
yo,
das geht auch mit einer abfrage, aber definiere doch mal "near", ob es sich dabei um x tage handelt, wochen, monate...
Ilja