728x90
반응형

JPQL 날짜 조회 시 타임존 제거하기

request 를 받을 때 String 타입으로 받는다면 간단하게 해결 가능함

@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate contractDate;

위와 같이 데이터를 받고 있었다면 

private String contractDate;

이렇게 받아서 jpql에서 조회하면 타임존이 붙지 않음

 

다만 jpql 쿼리문에서는 date함수를 사용해 String 타입을 Date 타입으로 변환시켜야 함

예시 코드 👇

@Query(value = "select * from order where contractDate >= DATE(:contractDate)")
List<ContractDto> getOrderList(String contractDate);

 

테스트 해본 결과 파라미터를 Date, LocalDate 타입으로 받는다면 아무리 formatting 해줘도 타임존 문제가 발생하기에 조회 타입을 string 으로 하는 방법이 가장 간단해 보임

반응형
복사했습니다!