2010-05-11 14 views
6

Postgres (8.3) 데이터베이스의 테이블에서 일부 타임 스탬프 열을 업데이트해야합니다.PostgreSQL - 바인드 변수 및 날짜 추가

update table1 set dateA = dateA + interval '10 hours' where id = 1234; 

이 스크립트의 일부이며 많은 그래서 내 취향은 바인드 변수를 사용하는 것입니다 업데이트하기보다는 쿼리 문자열을 구축해야 할 수있다 :

내 쿼리 (간체)과 같이 매번. 이는 내 쿼리가 다음과 같이되었음을 의미합니다.

이렇게하면 불만은 단 하나만 필요할 때 2 개의 바인드 변수를 제공한다는 것입니다.

나는 인용 부호 외부 ? 넣어하려고하면 :

update table1 set dateA = dateA + interval ? ' hours' where id = ?; 

내가 수를 :

... syntax error at or near "' hours'" 

쿼리가

... dateA = dateA + interval '10' ' hours' ... 

으로 해석 된 것처럼 것 같습니다 문서에서 도움이 될만한 것을 찾을 수 없습니다 ... 어떤 제안입니까?

감사

답변

8

이 시도 :

update table1 set dateA = dateA + ((interval '1 hours') * ?) where id = ?; 

또는이 :

update table1 set dateA = dateA + cast(? || ' hours' as interval) where id = ?; 
+0

감사합니다 - 모두 너무 분명! – azp74