Непонятное поведение sqlalchemy.func.date
имею такую орм модель
class Post(Base):
added = Column(DateTime(timezone=t_zone), default=datetime.now)
index = Column(Integer, default=0)
...
Имея t_zone
t_offset = timedelta(hours=3)
t_zone = timezone(offset=t_offset, name="UTC")
и такие записи в БД (postgres)
Делая такой запрос
now = datetime.datetime.now(t_zone)
session.query(Post).filter(func.date(Post.added) == now.date()).order_by(Post.index.desc()).first()
Я, казалось бы, логично, получу запись id=151, потому что сегодня 10е число.
НО НЕТ, я получу запись id=150.
Почему? Ведь сегодня, очевидно, 10е число. Часовые пояса одинаковые для now и post.added, даже пайчарм говорит об этом.
Если у записи id=150 изменить час с 23 на, например, 15, то всё правильно сработает и я не получу вчерашнюю запись
P.S.
Я заметил, что в БД поле added является timestamp without time zone, хотя в орм я явно указываю тайм зону. Миграции проводил, даже таблицы пересоздавал, всё так же
P.S.2
Поделал запросы через интерактив. Типом данных у added, как говорит мне DataGrip, является timestamp with time zone

