오라클에서 날짜나 시간(시, 분, 초)을 더하고 빼는 방법을 알아보겠습니다.
우선 TO_CHAR 함수를 활용해 현재 시간을 알아보겠습니다.
TO_CHAT함수는 선택된 날짜나 시간을 본인이 원하는 형식으로
출력할 수 있게 해주는 함수입니다.
현재 시스템 일자를 확인할 수 있는 SYSDATE 가상 컬럼을 이용해
현재 날짜를 확인해보겠습니다.
다음과 같은 실행문을 작성하면,
다음과 같은 결과를 얻을 수 있습니다.
'yy'는 Year, 'mm'은 Month, 'dd'는 Day를 의미합니다.
SYSDATE에 숫자를 더하면 어떻게 될까요?
기본적으로 SYSDATE에 더해지는 숫자는
'일자'입니다.
+1을 더하면 값이 '21년11월04'일로 바뀝니다.
따라서 30일 넘어가는 값을 더하게 된다면,
'월'이 변화하게 됩니다.
하지만 일자를 더해서 월이나 년도를 더하는 것은
날짜를 계산해야하기 때문에 불편합니다.
이럴 경우에는 ADD_MONTHS 함수를 사용할 수 있습니다.
위와 같이 ADD_MONTH 함수를 사용하면,
첫 번째 인덱스에는 계산할 날짜를
두 번째 인덱스에는 더할 달을 입력하면
원하는 결과를 얻을 수 있습니다.
위 실행문의 결과는 한 달을 더했기 때문에
'21년12월03일'이 나와야 하고 결과는 다음과 같습니다.
그렇다면 주어진 두 개의 일자 사이에
몇 개월의 지났는지 확인하려면 어떡해야 할까요?
이때는 MONTHS_BETWEEN 함수를 사용하는 것이 편리합니다.
앞서 사용했던 함수를 사용해
다음과 같은 실행문을 입력해보겠습니다.
결과는 다음과 같습니다.
그렇다면 날짜말고
'시간'은 어떻게 더할까요?
TO_CHAR 함수와 SYSDATE를 사용해
간단히 시간을 표시해보겠습니다.
HH는 'hour', 24는 시간 표시 형식, MI는 'minutes', SS는 'second'를 의미합니다.
실행결과는 다음과 같습니다.
위와 같은 실행문에서
시간, 분, 초를 더하기 위해서는
'/24', '/(24*60)', '/(24*60*60)'과 같이 표현하여 시간을 더해야 합니다.
'/24'는 시간을
'/(24*60)'는 분을
'/(24*60*60)'는 초를 의미합니다.
실행문으로 확인해보겠습니다.
다음과 같이 실행문을 작성하면
이와 같은 결과를 얻을 수 있습니다.
현재 시간에서 3시간을 더한 값과
현재 시간에서 20분을 더한 값,
현재 시간에서 30초를 더한 값이
결과값으로 리턴됩니다.
날짜와 시간을 구하는 방법이나
날짜와 시간의 차이를 구하거나 더하는 방법을 알아보았습니다.
내용이 이해 안 가거나 오류 발견 시 댓글 부탁드립니다!🙇♂️
'내가 공부하려고 올리는 > DB' 카테고리의 다른 글
오라클 - 날짜와 숫자를 문자로 나타내는 법 (0) | 2021.11.16 |
---|---|
오라클 - 존재하지 않는 컬럼의 값을 UNION 하는 방법 (0) | 2021.11.08 |
오라클 - ROUND와 TRUNC 함수의 차이 (0) | 2021.11.03 |
오라클 - LENGTH 함수를 이용하여 한글의 글자 수 알아내기 (0) | 2021.10.28 |
오라클 - Row 단위 자료를 Column 단위로 변경하기 (0) | 2021.10.27 |
댓글