SQLAlchemy는 파이썬에서 데이터베이스와 상호 작용하기 위한 강력한 도구입니다. 날짜 및 시간과 관련된 데이터를 처리하는 방법에 대해 알아보겠습니다.
1. datetime 모듈을 사용하여 날짜 및 시간 생성
SQLAlchemy는 파이썬의 datetime 모듈과 통합되어 있어 날짜 및 시간을 처리할 때 datetime 모듈을 사용할 수 있습니다. 다음은 datetime 모듈을 사용하여 날짜와 시간을 생성하는 예제입니다.
from datetime import datetime
now = datetime.now() # 현재 날짜 및 시간 가져오기
today = datetime.today() # 현재 날짜 가져오기
2. datetime 객체를 사용하여 데이터베이스에 날짜 및 시간 저장
SQLAlchemy에서는 datetime 모듈을 사용하여 생성된 datetime 객체를 데이터베이스에 저장할 수 있습니다. datetime 객체를 데이터베이스에 저장하려면 해당 필드의 타입을 DateTime
으로 정의해야 합니다. 다음은 SQLAlchemy 모델에서 datetime 필드를 정의하는 예제입니다.
from sqlalchemy import Column, DateTime
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class MyModel(Base):
__tablename__ = 'my_table'
created_at = Column(DateTime, default=datetime.now)
위의 예제에서 created_at
필드는 현재 날짜 및 시간으로 초기화되며, 이 값을 데이터베이스에 저장할 수 있습니다.
3. 필터링 및 정렬 기준으로 날짜 및 시간 사용
SQLAlchemy는 필터링(filtering) 및 정렬(sorting) 작업을 수행할 때도 datetime 객체를 사용할 수 있습니다. 예를 들어, 특정 날짜 및 시간 이후에 생성된 레코드를 가져오거나, 최신 날짜 순으로 정렬된 레코드를 가져올 수 있습니다.
from sqlalchemy import func
# 특정 날짜 이후에 생성된 레코드 가져오기
records = session.query(MyModel).filter(MyModel.created_at > datetime(2022, 1, 1)).all()
# 최신 날짜 순으로 정렬된 레코드 가져오기
records = session.query(MyModel).order_by(MyModel.created_at.desc()).all()
위의 예제에서는 filter()
와 order_by()
메서드를 사용하여 datetime 객체를 활용하여 필터링 및 정렬을 수행하는 방법을 보여줍니다.
4. 날짜 및 시간 형식 변환
SQLAlchemy는 datetime 객체를 원하는 형식의 문자열로 변환할 수 있는 기능을 제공합니다. strftime()
메서드를 사용하면 datetime 객체를 원하는 형식의 문자열로 변환할 수 있습니다.
formatted_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 예: 2022-12-31 23:59:59
위의 예제에서는 %Y-%m-%d %H:%M:%S
와 같은 형식 문자열을 사용하여 날짜와 시간을 원하는 형태로 변환합니다.
마무리
SQLAlchemy를 사용하면 날짜 및 시간을 쉽게 처리할 수 있습니다. 위에서 설명한 방법을 활용하여 애플리케이션에서 날짜 및 시간 데이터를 다루는데 도움이 되길 바랍니다. SQLAlchemy의 공식 문서 및 예제 코드도 참고해보세요.
참고 자료
- SQLAlchemy 공식 문서: https://docs.sqlalchemy.org
- datetime 모듈 공식 문서: https://docs.python.org/3/library/datetime.html