오라클 버전 : 10g 10.2.0.3.0 - 64bit
오라클에서 시간 합계를 구하는데 ORA-01830: date format picture ends before converting entire input string 이런 에러가 나옵니다.
근데 문제는 에러가 대부분 안나는데 시간 차가 1시간 나는 건수가 2건일 경우에만 에러가 발생합니다. 다른 케이스는 아직 발견을 못했습니다.
아래 테스트 쿼리를 실행하면 에러가 발생합니다.
똑같은 쿼리를 union all로 하나 더 붙이거나 하나를 없애거나 시간차를 1시간이 아닌 다른 시간차로 변경할 경우에는 에러가 발생하지 않네요..
AAA 컬럼과 BBB 컬럼이 똑같다고 생각되는데 AAA는 되는데 BBB는 되지 않네요.
이유를 아시는 분 답변 부탁드립니다.
추가로 아래 방법 말고 시간차이 합계를 내서 00일 00시 00분 이렇게 표시하는 방법이 있을까요?
WITH TB AS (
SELECT MOD(TO_DATE('201211051100', 'YYYYMMDDHH24MI') - TO_DATE('201211051000', 'YYYYMMDDHH24MI'), 1) TIM FROM DUAL
UNION ALL
SELECT MOD(TO_DATE('201211051100', 'YYYYMMDDHH24MI') - TO_DATE('201211051000', 'YYYYMMDDHH24MI'), 1) TIM FROM DUAL
)
SELECT TIM
, TO_CHAR(TO_DATE(7200, 'SSSSS'), 'HH24:MI') AAA
, TO_CHAR(TO_DATE(SUM(TIM) OVER() * 86400, 'SSSSS'), 'HH24:MI') BBB
FROM TB
|