웹서핑을 하다보면 특정날짜를 기준으로 한달 전, 2주 전 등의 필터링을 통해서 원하는 날짜에 대한 정보를 얻는 경우가 많이 있습니다.
그래서 오늘은 Datetime.timedelta
와 relativedelta
를 활용해 원하는 날짜의 데이터를 가져오는 방법에 대해 포스팅해보겠습니다.
먼저 기준이 되는 날짜를 정해야 되는데 저는 현재날짜를 기준으로 2주전의 데이터를 구해보도록 하겠습니다.
먼저 현재날짜를 구해줍니다.
datetime.datetime.now()
그리고 원하는 날짜만큼 빼주면 됩니다. 저는 오늘을 기준으로 2주전의 데이터를 가져오고 싶으니 2주를 빼주겠습니다. 방법은 다음과 같습니다.
datetime.datetime.now()-datetime.timedelta(weeks=2)
이렇게 작성하면 오늘을 기준으로 2주 전의 날짜를 구할 수 있습니다.
한달 전의 날짜를 구하고 싶다면 relativedelta
를 사용하여 계산하면 됩니다.
datetime.datetime.now()-relativedelta(months=1)
위와 같이 계산을 할 때 아쉬운 점은 오늘을 기준으로 2주전, 한달 전의 데이터만 얻을 수 있다는 것입니다. 예를 들어 오늘이 1월 6일이면 2주전인 12월23일에 해당하는 날짜의 데이터만 얻을 수 있는 것입니다.
근데 만약 내가 원하는 건 12월 23일부터 1월6일까지, 2주 동안의 데이터를 얻고 싶다면 어떻게 해야 할까요?
바로 범위를 설정해 주면 됩니다.
범위를 설정할 때는 다음 값들을 참고해서 사용하면 됩니다.
__gte: 크거나 같음
__gt:크다
__lte:작거가 같음
__lt:작다