Вот несколько методов, которые вы можете использовать при работе с временными метками и часовым поясом в SQLAlchemy и PostgreSQL:
-
Определите столбец. Чтобы хранить временные метки с часовым поясом, вы можете определить столбец в своей модели SQLAlchemy, используя тип
DateTime(timezone=True). Например:from sqlalchemy import Column, DateTime class YourModel(Base): __tablename__ = 'your_table' timestamp = Column(DateTime(timezone=True)) -
Запрос меток времени. При запросе меток времени с указанием часового пояса вы можете использовать различные функции и операторы SQLAlchemy, такие как
func.now(),func.current_timestamp()иfunc.timezone(). Например:from sqlalchemy import func # Get the current timestamp with time zone session.query(func.current_timestamp()).scalar() # Query records with timestamps greater than a specific value session.query(YourModel).filter(YourModel.timestamp > func.timezone('UTC', func.now())).all() -
Преобразование часового пояса. SQLAlchemy предоставляет такие функции, как
func.timezone()иfunc.timezone_hour()для управления часовыми поясами. С помощью этих функций вы можете конвертировать временные метки из одного часового пояса в другой. Например:from sqlalchemy import func # Convert timestamp to a different time zone session.query(func.timezone('America/New_York', YourModel.timestamp)).all() # Extract the hour from a timestamp in a specific time zone session.query(func.timezone_hour('America/New_York', YourModel.timestamp)).all() -
Работа с летним временем: SQLAlchemy автоматически обрабатывает преобразования летнего времени при работе с временными метками и часовыми поясами. Вам не нужно явно учитывать переход на летнее время.