반응형
Spring 환경에서 mybatis로 postgresql 연동하여 사용하는 환경.
수정 전 쿼리
<select id="selectCount" parameterType="com.export.model.DataDto" resultType="Integer">
SELECT COUNT(*)
FROM ${tableName}
WHERE ${dataTimeColumn} BETWEEN #{startTime} AND #{endTime}
</select>
where 절에 시간으로 조건을 줬는데... 에러가 났다.
Cause: org.postgresql.util.PSQLException: ERROR: operator does not exist: timestamp without time zone >= character varying
dataTimeColumn 컬럼은 timestamp 타입이라...
timestamp without time zone 타입이랑 character 타입이랑 연산이 안 된다는 것 같다.
해결방법 : TO_TIMESTAMP(문자열,'YYYY-MM-DD') 를 사용하여 문자열을 Date형식으로 변환해준다.
수정 후 쿼리
<select id="selectCount" parameterType="com.export.model.DataDto" resultType="Integer">
SELECT COUNT(*)
FROM ${tableName}
WHERE ${dataTimeColumn} BETWEEN TO_TIMESTAMP(#{startTime},'YYYY-MM-DD') AND TO_TIMESTAMP(#{endTime},'YYYY-MM-DD')
</select>
반응형
'코딩 관련 > 오류 관련' 카테고리의 다른 글
[npm] ELIFECYCLE 1 error front@0.1.0 serve: `vue-cli-service serve` (0) | 2021.09.30 |
---|---|
Spring Boot & Vue 환경 431 Request Header Fields Too Large (0) | 2021.09.27 |
[JavaScript] Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 4 (0) | 2021.08.11 |
Driver org.mariadb.jdbc.Driver claims to not accept jdbcUrl 오류 (1) | 2021.07.06 |
$(...).DataTable is not a function (0) | 2021.05.14 |