MySQL Suche Einträge älter als Datum XXX
Hallo alle zusammen,
nach langem probieren und suchen bei Google bin ich leider nicht fündig geworden bzw. konnte es nicht auf meine Bedürfnisse abändern.
Ich habe eine SQL-Abfrage die so aussieht:
Es mag euch nicht 100% gefallen wie ich meine Abfrage gestaltet habe. Es funktioniert soweit, jedoch bekomme ich alle Einträge angezeigt anstatt die Einträge die älter als $date und mit dem Wert von $date.
$date beinhaltet das heutige Datum. Könnt ihr mir weiter helfen?
Ich möchte eine Ausgabe, die mir alle DB-Einträge mit dem Datum heute oder älter ausgibt.
Danke, Gruß
Thoomaas
nach langem probieren und suchen bei Google bin ich leider nicht fündig geworden bzw. konnte es nicht auf meine Bedürfnisse abändern.
Ich habe eine SQL-Abfrage die so aussieht:
$ausgabe = "SELECT * FROM table WHERE Kategorie LIKE 'XYZ' AND falligkeitsdatum < '$date' AND sichtbar = 1 AND team LIKE '%".substr($abteilung, 7)."%' OR team LIKE 'XYZ' OR falligkeitsdatum LIKE '$date' AND sichtbar = 1 AND team LIKE '%".substr($abteilung, 7)."%' OR team LIKE 'XYZ'";
Es mag euch nicht 100% gefallen wie ich meine Abfrage gestaltet habe. Es funktioniert soweit, jedoch bekomme ich alle Einträge angezeigt anstatt die Einträge die älter als $date und mit dem Wert von $date.
$date beinhaltet das heutige Datum. Könnt ihr mir weiter helfen?
Ich möchte eine Ausgabe, die mir alle DB-Einträge mit dem Datum heute oder älter ausgibt.
Danke, Gruß
Thoomaas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 300378
Url: https://administrator.de/contentid/300378
Ausgedruckt am: 16.11.2024 um 19:11 Uhr
12 Kommentare
Neuester Kommentar
Moin.
Und für das aktuelle Datum gibt es in MySQL schon die Funktion CURDATE(), eine extra Variable dafür braucht es also eigentlich nicht.
Ich hoffe ihr verwendet für eure Datumsspalte auch tatsächlich das Datumsformat in der Datenbank und nicht Strings.
Gruß jodel32
Es mag euch nicht 100% gefallen wie ich meine Abfrage gestaltet habe.
Joa, das schreit förmlich nach SQL Injection Und für das aktuelle Datum gibt es in MySQL schon die Funktion CURDATE(), eine extra Variable dafür braucht es also eigentlich nicht.
Ich hoffe ihr verwendet für eure Datumsspalte auch tatsächlich das Datumsformat in der Datenbank und nicht Strings.
Gruß jodel32
$td['falligkeitsdatum'] beinhaltet bei mir den Wert (zum Beispiel) 2016-04-20....Ich möchte es jedoch in 20.04.2016 angezeigt bekommen.
Wenn du das in PHP meinst so:$date = new DateTime($td['falligkeitsdatum']);
echo $date->format('d.m.Y');
echo date_format(new DateTime($td['falligkeitsdatum']),"d.m.Y");
echo date_format(date_create($td['falligkeitsdatum']),"d.m.Y");
Du meinst das mit dem Datumsformat oder deine WHERE-Bedingung?
In der SQL Query könnte man das aber auch direkt mit folgender Funktion machen wenn man das wollte:
http://www.w3schools.com/sql/func_date_format.asp
RTFM sag ich nur, steht alles in den Funktionsbeschreibungen, man muss es nur mal ab und zu lesen...
Select DATE_FORMAT(falligkeitsdatum ,"%d.%m.%Y") as MeineNeueFormatierteSpalte, protocol.* FROM .......
RTFM sag ich nur, steht alles in den Funktionsbeschreibungen, man muss es nur mal ab und zu lesen...
Das gleiche kann ich nutzen, um es beim speichern wieder "anders herum" zu schreiben oder?
sicher, steht ja alles zur Behandlung von Datumswerten hier:http://php.net/manual/de/function.date.php
Wer des Lesens mächtig ist ...