320x100
post의 createdDateTime(LocalDateTime) 컬럼이 startDate(LocalDate), endDate(LocalDate) 사이에 있는 값을 뽑기 위해 where 조건을 추가하려고 한다.
builder.and(
post.createdDateTime.between(
startDate.atStartOfDay(),
LocalDateTime.of(searchParams.endDate, LocalTime.MAX)
)
)
asStartOfDay()로 startDate에 00:00:00을 추가해서 LocalDateTime으로 만든다.
endDate은 23:59:59.999999 을 조건으로 붙이기 위해 LocalDateTime.of를 사용했는데 실제로는 처리될때는 다음날 00:00:00 로 조건이 걸린다고 한다. 즉, endDate가 2020/08/05일 때, 이를 2020/08/05 23:59:59.99999 로 만들어서 between end시간으로 넣지만 실제로는 2020/08/06 00:00:00 으로 쿼리가 나간다.
따라서 endTime 조건을 23:59:59로 하려면 nano 초 단위를 0으로 해줘야 한다.
builder.and(
post.createdDateTime.between(
startDate.atStartOfDay(),
LocalDateTime.of(searchParams.endDate, LocalTime.MAX).withNano(0)
)
)
320x100
'Back-End (web)' 카테고리의 다른 글
[Mono][Feign] 404 error custom throw (0) | 2020.08.16 |
---|---|
kotlin Companion extension (0) | 2020.08.08 |
[intellij] google code 포매터 적용 (0) | 2020.07.11 |
[Spring] GatewayFilterFactory add Order (0) | 2020.07.02 |
[Spring] GatewayFilterFactory Unit Test (0) | 2020.07.02 |
댓글