将 postgresql 查询转换为 sqlalchemy

Convert postgersql query to sqlalchemy

我尝试将此 sql 查询转换为 sqlalchemy 或但不能。

    SELECT AVG(value), 
           date_trunc('day', datetime) + (((date_part('hour', datetime)::integer / 5::integer) * 5::integer + 5::integer) || 'hours')::interval AS some_timestamp 
    FROM tablename 
    GROUP BY some_timestamp 
    ORDER BY some_timestamp;

我不明白如何将 postgresql:: 转换为 sqlalchemy 和 + 以及 ||

我的解决方案:

q = db.query(func.avg(Temperature.value).label('avg_value'),
                 (func.date_trunc('day', Temperature.date) +
                  cast(func.concat(
                      ((cast(func.date_part('hour', Temperature.date), Integer) / cast(5, Integer))
                       * cast(5, Integer) + cast(5, Integer)), 'hours'), Interval))
                 .label("datetime")
                 ).filter(Temperature.sensor_id == sensor_id,
                          Temperature.date >= since,
                          Temperature.date <= to).group_by('datetime').order_by('datetime')