Ich muss Daten aus Mysql für die letzten 7 Tage auswählen. Ich habe das Feld "Datum" und die Werte haben das Format mm.dd.yy. So habe ich versucht, spezielle mysql Anfrage zu tun, aber es funktioniert nicht mit meinem Feld, ich glaube, dass Datum in falschem Format. Wie kann ich das von PHP (verwenden Sie eine Variable, um mysql-Einträge zu erhalten), oder mit benutzerdefinierten Select-Abfrage?Wie die letzten 7 Tage Ergebnisse von mysql (mit benutzerdefinierten Datenfeld) auswählen?
Antwort
machen Sie STR_TO_DATE()
verwenden können Ihr idiosyncratic Datumsformat zu einem Standard DATE
Wert zu konvertieren. Ein Ausdruck wie dies
STR_TO_DATE('07.17.97', '%m.%d.%y')
den Trick Dann können Sie
WHERE STR_TO_DATE(`date`, '%m.%d.%y') >= CURDATE() - INTERVAL 7 DAY
in Ihrer Abfrage sagen Elemente filtern mit date
Werte vor einer Woche beginnen.
Wenn Sie jedoch viele zu filternde Zeilen haben, haben Sie eine schlechte Leistung: Diese Art der WHERE-Klausel ist nicht sargable.
Ich ändere meinen Datumsfeldtyp in DATE und formatiere ihn auf der Vorderseite neu, um die Ansicht zu erleichtern. Und seine Lösung für mich. – DanialartBiz
zuerst Ihre Tabelle lesen und das Datumsformat
$new_date_format = date('Ymd',mktime(0,0,0,substr($date,0,2),substr($date,3,2),substr($date,6,2)));
Danach wechseln Sie comparisions
Dies würde dem ganzen Zweck der Verwendung von SQL widersprechen - Sie müssten die gesamte Tabelle abrufen und dann mit PHP-Code suchen. Was meinst du, ineffizient? –
Hängt davon ab, wie groß der Tisch ist! –
Hmm, nein ... ich stimme nicht zu. –
Verwenden Sie explode, um es richtiges Format zu machen und dann versuchen Sie es erneut, was Sie zuvor versucht haben. – C2486
es ist eine sehr schlechte Praxis, Ihr Datum als Varchar und in mm.dd.yy Format zu speichern. Bleiben Sie bei der Konvention und machen Sie es DATE oder DATETIME Format und speichern Sie es im JJJJ-MM-TT-Format. –
@ObjectManipulator Wie kann ich ein Datumsfeld im Format erstellen, das ich brauche? Und wird es mit Datenmanipulationen in SQL arbeiten? – DanialartBiz