본문 바로가기

IT/SQL

Postgresql timestamp 비교

ERROR: operator does not exist: timestamp without time zone > bigint

spring 에서 postgresql을 이용해서

timestamp 비교할때 에러가 났다.

--------------------------------------

select * from table where date > ?1

public List<vo> findData(String pastDt);

--------------------------------------

이라는 소스를 심었는데 date 컬럼의 type은 timestamp였고

java에서 ?에 변수를 던져서 쿼리를 실행하려고 하니 안먹는거다....

String pastDt -> 실패 ( java에서 dateFormat을 변경해서 String 으로 던져도 안됨...)

long pastDt -> 실패

Timestamp pastDt -> 실패

악!!!!!!

postgresql tool인 pgadmin에서는 

select * from table where msr_dt  > '2015-09-10 08:14:31.522';

이렇게 하면 결과는 나온다.... ㅠㅠ 근데 java로 넘어가면 왜 안되는걸까...


방법은 ~?




column type이 Timestamp를 비교할 때는 java Date type을 이용해야한다!ㅜㅜ감동


*timestamp between 연산 사용하는법!



현재시간을 기준으로 300분 전까지의 데이터만 출력

timestamp 연산을 사용할때 - interval '값' 을 넣으면 가능하다.

1 hour, 1 min, 1sec 등으로 사용!!