2014-11-28 2 views
0
내가 쿼리 아래의 SQL 오류가 발생하고

, 아래와 같이 쓸 수 없습니다 ..DB2 시간 소인 계산

SELECT some columns FROM XXXXX.XXX_XXX 
WHERE LAST_UPDT_DATE<= CURRENT TIMESTAMP  
AND LAST_UPDT_DATE>= (CURRENT_TIMESTAMP -  
'2001-01-21-12.00.00.000000')    
;        
+0

질문에서 오류가 발생하지 않으므로 추가 도움을 요청할 때 오류를 제공하십시오. –

+0

DSNT408I SQLCODE = -401, 오류 : 연산 또는 비교의 연산 연산이 호환되지 않음 DSNT418I SQLSTATE = 42818 SQLSTATE RETURN CODE – user2054151

+0

사이드 노트 : [항상 상한값을 사용합니다] (http://sqlblog.com /blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common.aspx) 긍정적 인 연속 범위 유형이 있습니다. –

답변

0

이 검증되지 않은 쿼리 시도 : (보통

SELECT some columns FROM XXXXX.XXX_XXX 
WHERE LAST_UPDT_DATE between CURRENT TIMESTAMP  
AND (CURRENT_TIMESTAMP - 
date(to_date('2001-01-21-12.00.00','YYYY-MM-DD HH.MI.SS')) 
+0

Jens .. 나는 당신의 코드가 curr_ts - date를 줄 것이라고 생각한다. 나는 더 많은 감각을 가질 필요가있다 .. 그리고 curr_ts를 뺄 필요가있다 - 낡은 타임 스탬프 .. :) – user2054151

0

을 표준 SQL)에는 초에서 분과 분을 구분하는 콜론이 있습니다. DB2는 표준을 하루와 시간 사이의 간격으로 따르지는 않지만, 어떤 문장 부호를 사용했는지 잊어 버렸습니다. TIMESTAMP 리터럴에 강조/강제 변환하기 위해 문자열 앞에 TIMESTAMP 접두사를 붙일 수도 있습니다. DB2 10.1 Knowledge Centre에서

:

A string representation of a timestamp can be given a different timestamp precision by explicitly casting the value to a timestamp with a specified precision. If the string is a constant, an alternative is to precede the string constant with the TIMESTAMP keyword. For example, TIMESTAMP '2007-03-28 14:50:35.123' has the TIMESTAMP(3) data type.

0

죄송합니다 모든 .. 내 요구 사항 계산 (- 타임 스탬프 타임 스탬프)을 필요로하지 않습니다. 질문은 단지로,

SELECT some columns FROM XXXXX.XXX_XXX 
WHERE LAST_UPDT_DATE<= CURRENT TIMESTAMP  
AND LAST_UPDT_DATE>='2001-01-21-12.00.00.000000' 
;   

잘 작동해야합니다.

관련 문제