такое?
stmt = select(Workout) \
.outerjoin(WorkoutMember, Workout.id == WorkoutMember.workout_id) \
.where(
or_(
Workout.start_datetime >= current_time,
Workout.start_datetime + timedelta(minutes=Workout.duration) > current_time
)
)
Интересует часть с таймдельтой, ругается на меня
TypeError: unsupported type for timedelta minutes component: InstrumentedAttribute sqlalchemy
В инете гуглится make_interval
Workout.start_datetime + func.make_interval(0, 0, 0, 0, 0, Workout.duration) > current_time
но тоже дает ошибку
sqlalchemy.exc.ProgrammingError: (sqlalchemy.dialects.postgresql.asyncpg.ProgrammingError) <class 'asyncpg.exceptions.UndefinedFunctionError'>: function make_interval(integer, integer, integer, integer, integer, workoutduration) does not exist
Что за Workout.duration?
нужно фильтровать либо те у которых дата старта > текущего времени, либо те которые "в процессе"
Обсуждают сегодня