Heim > Datenbank > MySQL-Tutorial > Wie filtere ich SQLAlchemy-Datumsfelder für Altersbereichsabfragen richtig?

Wie filtere ich SQLAlchemy-Datumsfelder für Altersbereichsabfragen richtig?

Mary-Kate Olsen
Freigeben: 2024-12-21 04:09:10
Original
859 Leute haben es durchsucht

How to Correctly Filter SQLAlchemy Date Fields for Age Range Queries?

SQLAlchemy: Filtern von Datumsfeldern

In SQLAlchemy erfordert das Filtern basierend auf Datumsfeldern sorgfältige Überlegungen. Lassen Sie uns untersuchen, wie Sie richtig zwischen zwei Daten filtern, um Daten innerhalb eines bestimmten Altersbereichs zu extrahieren.

Modellieren des Datumsfelds

Angenommen, Sie haben ein Benutzermodell mit einem Geburtstagsfeld Als Datumsdatentyp definiert, wird er in der Datenbank als Zeichenfolge im Format „JJJJ-MM-TT“ dargestellt, z. B. '1987-01-17'.

Filtern nach Altersgruppe

Um alle Benutzer innerhalb einer bestimmten Altersgruppe auszuwählen, sagen wir 18 bis 30 Jahre, müssen wir Folgendes tun Vergleichen Sie ihre Geburtstage mit den entsprechenden Daten, die den Anfang und das Ende dieses Bereichs darstellen.

Falsch Ansatz

Ihre erste Abfrage enthält, obwohl konzeptionell korrekt, einen Tippfehler, der die Ungleichheitssymbole umkehrt:

query = DBSession.query(User).filter(
  and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17')
)
Nach dem Login kopieren

Diese Abfrage schließt alle Datensätze aus, da nach Benutzern gesucht wird, deren Geburtstage beide sind größer oder gleich „17.01.1988“ und kleiner oder gleich „17.01.1985“ ist unmöglich.

Richtiger Ansatz

Um richtig zu filtern, kehren Sie einfach die Ungleichheitssymbole um:

qry = DBSession.query(User).filter(
  and_(User.birthday <= '1988-01-17', User.birthday >= '1985-01-17')
)
Nach dem Login kopieren

Alternativ können Sie den integrierten Methode between():

qry = DBSession.query(User).filter(User.birthday.between('1985-01-17', '1988-01-17'))
Nach dem Login kopieren

Beide Ansätze geben Benutzer zurück, deren Geburtstage in den angegebenen Datumsbereich fallen, der den gewünschten darstellt Altersintervall.

Das obige ist der detaillierte Inhalt vonWie filtere ich SQLAlchemy-Datumsfelder für Altersbereichsabfragen richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage