2016-08-03 4 views
-1

I에만 4 행 다음 표 :이 테이블에 쿼리DB2 타임 스탬프 비교

select * from TABLE9 
    where dateLastChanged < dateLastUploaded 

을 실행하면 enter image description here

, 난 행 1 & 4를 볼 것으로 예상, 그러나 나는 이 얻을 : enter image description here

을 내가 실행하면

select * from TABLE9 
    where dateLastChanged > dateLastUploaded 

은 내가 enter image description here

을 얻고,

select * from TABLE9 
    where dateLastChanged <> dateLastUploaded 

에 나는 그것의 4를 얻을. ... where dateLastChanged = dateLastUploaded 아무 것도 얻지 못합니다.

나는 timestamp--에 캐스팅 같은 결과를 얻었다 시도 :

select * from TABLE9 
    where timestamp(dateLastChanged) < timestamp(dateLastUploaded) 

무슨 누락을 ???

처음으로 DB2에서 DB2를 처음 사용했습니다. 점점 더 "사랑"합니다.

참고 : 저는 자바 측에서이 문제를 해결할 수 있다는 것을 알고 있습니다.

// --------------------------

편집 :

분명 내가 무슨 생각 명확히 질문에 :

어떻게

select * from TABLE9 
    where dateLastChanged < dateLastUploaded 

dateLastChanged < dateLastUploaded, dateLastChanged > dateLastUploadeddateLastChanged = dateLastUploaded을 반환 온다.

DB2는 어떤 시간 소인이 서로 더 크고 작고 같고 같지 않은지 결정하는 방법을 결정합니다. 행 tNumber=bbbbb의 시간 소인이 작성되고 동시에 작성되었습니다.

// --------------------

EDIT-2 내 원래의 질문에

- "보다 큰/이하 타임 스탬프의 비교에서 "ithan"은 혼란 스럽습니다. 이 (후자의 타임 스탬프가 더 크거나 없습니다) 은 이 일치하지 않고 내가 Q와이 바로 앞에 편집에 배치되어 전달되면 쉽게 나타납니다.

+0

왜 '17 : 24 '가 '17 : 14'보다 적은 (즉, 빠르다) 생각하는지 설명하십시오. – mustaccio

+0

타임 스탬프를 본 적이 있습니까? 충분히 가까이서 보면 모든 답을 찾을 수 있습니다. 모든 것은 예상대로 작동합니다! – MichaelTiefenbacher

+0

DB2가 정확하기 때문에 DB2를 사용하고 있습니다. –

답변

1

DB2는 ISO 정의 논리를 사용하여 시간 소인을 비교합니다. 즉, "낮게"는 이전 날짜/시간이 사용되고 "큰"은 이후 날짜/시간을 의미합니다. 예를 들어 DB2는 모든 것을 정확하게 평가합니다. 다른 결과를 얻으려면 값을 변경해야합니다. :)