Also versuche ich eine Abfrage zu meiner SQL-Datenbank von meinem Backend (das ist in PHP mit Laravel geschrieben). Ich habe eine Tabelle in meiner Datenbank mit einer Spalte mit dem Titel "created_at", die Werte vom Typ "timestamp" enthält. Ich möchte, wenn ich eine Abfrage an meine Datenbank sende, nur die Zeilen (oder Instanzen, die ich vermute) meiner Tabelle auswählen, die 30 Tage oder weniger vom aktuellen Datum entfernt sind. Ich habe versucht, mit dem Schlüsselwort "where" zu experimentieren, aber ich konnte nicht so funktionieren, wie ich es wollte.Filter SQL-Datenbank-Abfrage von Zeitstempel, Backend in PHP mit Laravel
Wenn ich die Tabelle in meiner Datenbank durchsuche, werden die Daten im Format "JJJJ-MM-TT hh: mm: ss" geschrieben, aber ich bin nicht sicher, wie man sie vergleicht, wenn sie in diesem Format sind, und ich weiß nicht, wie man sie konvertiert, während man eine Abfrage durchführt. Ich habe mir die Methode whereBetween() in Laravel angeschaut, aber ich habe das nicht zum Laufen gebracht, weil ich nicht wusste, wie ich sie vergleichen würde.
Im Moment meine Abfrage sieht wie folgt aus:
$topUser = DB::table('statistics')
->join('users', 'statistics.user_id', '=', 'users.id', 'inner')
->select('fname', 'user_id', DB::raw('sum(price) as total_collection'))
->groupBy('user_id')
->orderBy('total_collection','desc')
->get();
Was ich tun möchte, in Pseudo-Code, ist etwas entlang der Linien von;
->where 'created_at' <= 30 days ago
Vielen Dank im Voraus!
WHERE ("created_at" mit "<=", DB :: raw ("NOW() - INTERVAL 30 DAY")) '? – apokryfos