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?