Django date range

2024. 2. 1. 14:19· Django/orm
728x90

시작 날짜와 끝 날짜 데이터를 받아와서 날짜별 필터링을 하는 것은 많은 곳에서 쓰이는 방법이다

start_date = request.query_params.get('start_date')
end_date = request.query_params.get('end_date')

filter(created_at__range=(start_date, end_date))

나도 이렇게 쿼리를 받아와서 filter을 걸었는데 필터링이 원하는 대로 하루가 되는 것이 아닌 end_date 전 날 까지만 되는 상황이 발생했다

그러한 이유는 받아오는 시간이 YYYY-mm-dd 이니까 뒤에 시간대를 00으로 잡아서 필터링 걸기 때문이였다.

그래서 날짜에 하루를 추가하던가 range는 include하게 잡으니까 lte, gt를 사용하는 방법이 있다

end_date = datetime.datetime.strptime(end_date, '%Y-%m-%d') + datetime.timedelta(days=1)
proposals = proposals.filter(created_at__range=(start_date, end_date))

or

created_at__gte=start_date,
created_at__lt=end_date

 

저작자표시 비영리 (새창열림)

'Django > orm' 카테고리의 다른 글

Dynamdb() Scan vs query  (0) 2024.02.06
DynamoDB()  (0) 2024.02.05
F()  (0) 2024.01.24
len() vs count()  (0) 2024.01.19
두 가지 조건을 exclude 시 and 연산  (0) 2024.01.17
'Django/orm' 카테고리의 다른 글
  • Dynamdb() Scan vs query
  • DynamoDB()
  • F()
  • len() vs count()
두잇 두두
두잇 두두
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
두잇 두두
두두 DB
두잇 두두
전체
오늘
어제
  • 분류 전체보기 (135)
    • CS지식 (7)
    • 시스템 설계 (5)
    • 자료구조&알고리즘 (36)
      • 자료구조 (1)
      • 백준 (13)
      • 프로그래머스 (15)
      • 인프런 (2)
    • Python (9)
      • Docs (3)
      • 실험실 (2)
    • Django (36)
      • orm (10)
      • view (3)
      • model (3)
      • admin (3)
      • restframework (13)
      • error (1)
      • utils (2)
    • Java (2)
      • JPA (3)
    • AI (1)
      • AI가 쓴 글 (1)
    • Git (4)
    • Linux (1)
    • 개발자로써 (8)
      • 회고 (1)
    • 문화생활 (0)
      • 여행 (0)
    • 도서📚 (0)
      • 일반 도서 (0)
      • 개발 도서 (0)
    • 프론트 (1)
      • snippet (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
두잇 두두
Django date range
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.