Heim >Datenbank >MySQL-Tutorial >Wie filtere ich SQLAlchemy-Benutzer mithilfe von Datumsfeldern nach Altersgruppe?

Wie filtere ich SQLAlchemy-Benutzer mithilfe von Datumsfeldern nach Altersgruppe?

Barbara Streisand
Barbara StreisandOriginal
2024-12-16 05:33:13631Durchsuche

How to Filter SQLAlchemy Users by Age Range Using Date Fields?

SQLAlchemy: Filterung von Datumsfeldern

Abfragen von Benutzern innerhalb eines bestimmten Altersbereichs

Angesichts der folgenden Modelldefinition:

class User(Base):
    ...
    birthday = Column(Date, index=True)   # Ex. '1987-01-17' in the database
    ...

Ziel ist es, alle Benutzer innerhalb einer Altersspanne abzurufen, beispielsweise zwischen 18 und 30 Jahren alt.

Korrekte Filterimplementierung

Um die gewünschte Filterung zu erreichen, kann die folgende SQLAlchemy-Abfrage verwendet werden:

query = DBSession.query(User).filter(
    User.birthday.between('1985-01-17', '1988-01-17')
)

Erklärung:

  • Der Operator between() wird verwendet, um die Unter- und Obergrenze des Datums anzugeben Bereich.
  • Die Datumswerte werden als Zeichenfolgen im Format „JJJJ-MM-TT“ formatiert.

Alternative Filtermethoden

Abgesehen von der Verwendung des Between( )-Operator gibt es andere Methoden zum Filtern von Datumsfeldern:

# Filter by upper bound date
query = DBSession.query(User).filter(User.birthday <= '1988-01-17')
# Filter by lower bound date
query = DBSession.query(User).filter(User.birthday >= '1985-01-17')
# Filter by equality
query = DBSession.query(User).filter(User.birthday == '1987-01-17')

Das obige ist der detaillierte Inhalt vonWie filtere ich SQLAlchemy-Benutzer mithilfe von Datumsfeldern nach Altersgruppe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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