[복습] SQL | Oracle 조건을 나타내기, 일반함수(decode, case)
앞서 배운 함수를 다시 정리해보면, 1. 문자함수: upper, lower, initcap, replace, translate, lpad, trim, length, substr, instr 등 2. 숫자함수 2-1) 단일행함수(1:1): round/trunc, ceil/floor, sign, abs 2-2) 그룹함수: sum, avg, count, min/max 3. 날짜함수: sysdate, months_between, add_months, next_day, last_day 4. 변환함수: to_char, to_number, to_date 5. 일반함수: nvl, nvl2, 그리고 오늘 배운 decode, case decode와 case를 공부하기 전에 잠시 묵시적 형 변환에 대하여 설명하겠다. 묵시적..
[복습] SQL | Oracle 다양한 종류의 날짜 함수(sysdate, add_months, months_between, next_day, last_day, round/trunc)
현재 시스템 날짜 출력하는 함수는 sysdate 이다. 이러한 날짜는 연산이 가능하며, 정수를 더하고 빼면 일 단위로 연산이 된다. 두 날짜의 일 수를 리턴하고 싶다면, 말 그대로 두 날짜를 빼면 일 수가 출력된다. 만일 3개월 이전 날짜가 궁금하다고 하자. 월은 30일로, 31일로도 끝나기도 하며 어떨 땐 윤달이 끼어서 29 값을 활용해야 할 수도 있다. 이럴 때 add_months 사용하면 된다. add_months(날짜, n) 의 형태로 사용되며 아래처럼 활용하면 된다. 3개월 이후는 양수, 이전은 음수로 나타내면 된다. 오늘 날짜로부터 3년 후를 표현해보면, 위와 같이 나타낼 수 있다. 그냥 365를 냅다 3으로 곱하면 예시처럼 하루가 모자라게 나타나므로 마지막 방법으로 계산하여야 할 것이다. 다..