코딩 관련/오류 관련
Cause: org.postgresql.util.PSQLException: ERROR: operator does not exist: timestamp without time zone >= character varying
메리짱123
2021. 9. 16. 16:57
반응형
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>
반응형