J'ai un modèle SQLalchemy simple:
class Event(Base):
""" The SQLAlchemy declarative model class for a Event object. """
__tablename__ = 'events'
id = Column(Integer, primary_key=True)
date = Column(DateTime)
title = Column(Text)
3 Réponses :
Cela devrait trouver tous les événements de juin 2012.
import datetime
import calendar
year = 2012
month = 6
num_days = calendar.monthrange(year, month)[1]
start_date = datetime.date(year, month, 1)
end_date = datetime.date(year, month, num_days)
results = session.query(Event).filter(
and_(Event.date >= start_date, Event.date <= end_date)).all()
Une très ancienne question mais une meilleure réponse est ici: Ceci renvoie tous les enregistrements dans des événements de base de données en juillet. P> P>
Et si vous voulez extraire le mois et l'année?
Je me demandais la même chose que Brady Huang se demandait. Donc, pour développer l'excellente réponse de @ scottydelta: Vous pouvez simplement empiler les filtres les uns sur les autres. Donc, si vous souhaitez extraire chaque événement de juillet 2018, vous devez utiliser
from sqlalchemy import extract
session.query(Event).filter(extract('year', Event.date)==2018).filter(extract('month', Event.date)==7).all()
Avez-vous besoin de filtrer les événements d'un mois spécifique (exemple: juin 2012, auquel cas @ de la réponse de Tony est bon) ou les événements de juin indépendamment de l'année?