Aquí es el modelo:SQLAlchemy: cómo filtrar el campo de fecha?
class User(Base):
...
birthday = Column(Date, index=True) #in database it's like '1987-01-17'
...
quiero filtrar entre dos fechas, por ejemplo, para elegir a todos los usuarios en intervalos de 18-30 años.
¿Cómo implementarlo con SQLAlchemy?
pienso:
query = DBSession.query(User).filter(
and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17')
)
# means age >= 24 and age <= 27
Sé que esto no es correcto, pero ¿cómo hacerlo correcto?
¡Gracias de antemano!
Por cierto, en lugar de ''1985-01-17'', también puede usar' datetime.date (1985, 1, 17) '- puede ser más fácil de usar o trabajar en algunos entornos. – rippleslash
@rippleslash: tiene razón, e idealmente uno debe usar el tipo de datos adecuado para los parámetros. Sin embargo, todas las bases de datos también comprenden el formato ISO 8601 para las fechas, que también es un orden lexicográfico. Por esta razón, para ejemplos simples generalmente utilizo fechas con formato ISO, más fácil de leer. – van
Chicos, también recordarán una cosa. NO ponga la fecha entre comillas como 'User.birthday <=" 1988-01-17 "' no funcionará. 'Error:" La hora debe ser de 0 a 23 "' En su lugar use el signo de puntuación como @van dijo 'User.birthday <= '1988-01-17'' – pawpaw