2012-05-07 4 views
0

db2 프로 시저를 작성 중입니다. 내 선택 쿼리 결과에 비교해야하는 날짜 시간이 있습니다.- 쿼리 결과 선택 - 조건부 하위 문자열

날짜 형식 20,120,507 시간 형식 111111

오전 계획은 모두 CONCAT 및 정수로 비교합니다. 그 올바른 비교 방법입니까?

그러나 10보다 작 으면 값은 71111과 같습니다. 이러한 경우 시간 전에 0을 추가하고 연결을 비교하고 비교할 계획입니다.

단일 명령문으로이 작업을 수행 할 수 있습니까?

select dbdate, if LENGTH(trim(dbtime))=7 then '0'||dbtime into newtime from tablename 
+1

아니요, 날짜/시간을 정수로 비교하지 마십시오. 적절한 데이터 유형과 비교하십시오 (일부 OLAP 시스템에서 달력 표의 특수 용도 사용 금지). 데이터가 실제로 정수 (또는 문자열)로 저장 되었습니까, 아니면 쿼리 결과입니까? 그리고 어떤 종류의 비교를해야합니까? –

답변

0

이 당신에게 비교 연산에 사용할 수있는 DB/2 타임 스탬프를 제공
select TIMESTAMP(dbdate, dbtime) 

에서와 TIMESTAMP 라 함수를 사용해보십시오. 모든 날짜/시간 값을 타임 스탬프로 변환 한 다음 비교하기 전에 필요에 따라 truncate 또는 round을 캐스팅하는 것이 가장 좋습니다.