오라클 SQL에서 시간을 포맷팅 할 때 사용하는 포맷 요소는 다양한 형식을 지원한다. 아래의 표를 참고하여 시간 데이터를 다양한 형식으로 변환하여 출력하면 된다. 날짜 및 시간 포맷은 TO_CHAR, TO_DATE 함수를 사용할 때 사용하기 때문에 사용법을 정확히 익혀두면 많은 도움이 될 것이다. 형식요소내용범위 HH, HH12 시간 (12시간 단위) 0 ~ 12 HH24 시간 (24시간 단위) 0 ~ 24 MI 분 0 ~ 59 SS 초 0 ~ 59 SSSSS 자정이후 초 단위 시간 0 ~ 86399 FF[1..9] 밀리세컨드 표시 최대 9자리까지, SS.FF3 AM, PM 오전, 오후 표시 목차날짜 포맷 기본 사용법자정이후 초 단위 시간의 활용법AM, PM 한글 영문 지정 방법밀리세컨드 포맷 사용법 ..
오라클 SQL에서 EXTRACT 함수를 사용하여 날짜(년, 월, 일) 또는 시간( 시, 분, 초 )을 분리하여 추출할 수 있다. 날짜를 분리하여 추출할 때는 주로 TO_CHAR 함수를 많이 사용하지만, EXTRACT 함수와 TO_CHAR 함수의 차이는 EXTRACT 함수는 숫자(NUMBER)를 반환하고, TO_CHAR 함수는 문자열을 반환한다. 목차EXTRACT 함수를 사용하여 날짜 추출(년, 월, 일)EXTRACT 함수를 사용하여 시간 추출(시, 분, 초)EXTRACT 함수를 사용하여 실제 테이블에서 추출TO_CHAR 함수를 사용하여 날짜 추출 방법 EXTRACT 함수를 사용하여 날짜 추출(년, 월, 일)SELECT SYSDATE , EXTRACT(YEAR FROM SYSDATE) AS yea..
오라클 SQL에서 정수를 반올림하기 위해서는 ROUND 함수를 사용하고, 정수를 버리기(절사)를 할 때는 TRUNC 함수를 사용하면 된다. 소수점을 반올림할 때는 반올림 위치를 양수로 지정하지만, 정수를 반올림하거나 버림을 할 때는 음수를 사용하여 위치를 지정한다. 아래의 반올림, 버림 위치 예시 이미지를 참고하면 쉽게 이해할 수 있을 것이다. 목차정수 반올림 방법 (ROUND 함수)정수 버림 방법 (TRUNC 함수) 정수 반올림 방법 (ROUND 함수)SELECT ROUND(123456, -1) , ROUND(123456, -2) , ROUND(123456, -3) FROM dual 정수를 반올림하기 위해서는 ROUND 함수를 사용하고, 반올림 위치를 음수로 지정한다. 해당 위치의 값..
오라클 데이터베이스에서 칼럼의 사이즈를 늘리거나 칼럼의 사이즈를 줄일 때는 ALTER TABLE MODIFY 명령을 사용하면 된다. 그러나 기존 데이터의 크기가 줄이려는 사이즈보다 큰 경우 오류가 발생할 수 있으며, 숫자(NUMBER) 칼럼의 소수점 길이를 늘일 때는 전체 길이도 함께 늘려야 정수부가 줄어들면서 발생하는 오류를 방지할 수 있다. 칼럼 사이즈 변경 방법컬럼 사이즈 변경 시 주의 사항 컬럼 사이즈 변경 방법-- 문자열: VARCHAR2(10) -> VARCHAR2(50)ALTER TABLE emp MODIFY ename VARCHAR2(50);-- 숫자: NUMBER(2) -> NUMBER(10)ALTER TABLE emp MODIFY deptno NUMBER(10);-- 소수점을 포함한 숫..
오라클 12c부터는 INVISIBLE 및 VISIBLE 칼럼 속성을 사용하여 칼럼의 순서를 변경할 수 있다. 이 방법은 기존 테이블의 구조를 변경하지 않고, 칼럼을 잠시 보이지 않게 설정했다가 다시 보이게 설정하여 칼럼의 순서를 변경하는 원리이다. 그리고 오라클 11g 이하에서 칼럼의 순서를 변경하기 위해서는 테이블을 재생성하는 방법을 사용해야 하며, 특별한 경우가 아니면 권장하지는 않는다. 목차오라클 12c 이상에서 칼럼 순서 변경 방법오라클 11g 이하에서 칼럼 순서 변경 방법 오라클 12c 이상에서 칼럼 순서 변경 방법 오라클 12c 이상부터 INVISIBLE, VISIBLE 속성을 사용하여 칼럼의 순서를 쉽게 변경할 수 있다. 칼럼을 숨겼다가 다시 보이게 하면 칼럼의 순서가 뒤로 옮겨지는 원리이다..
오라클 SQL에서 SUM(DECODE)는 특정 조건의 데이터를 합산해서 가로로 표시할 때 사용하는 방법이다. DECODE 함수가 오라클에서만 사용가능하기 때문에 표준 SQL인 SUM(CASE WHEN) 구문을 권장하기도 하지만, 오라클에서 사용할 때는 SUM(DECODE) 구문이 조금 더 직관적이고, 쿼리문이 조금 더 간결하기 때문에 실무에서 많이 사용하는 편이다. 두 가지 방법 모두 동일한 결과를 얻을 수 있기 때문에 취향에 따라서 사용하면 된다. 목차기본 사용법세로의 합산 값을 가로로 표시하기특정 조건의 건수 합산하기연월별 집계표 만들기 (고급예제) 기본 사용법SELECT SUM(DECODE(job, 'MANAGER', sal)) AS manager_sal FROM emp SUM(DECODE) 구..
오라클 SQL에서 일별, 월별, 시간대별 등 증감률을 계산하기 위해서는 LAG 분석함수를 사용하면 된다. LAG 함수는 OVER 절과 함께 사용하며, OVER 절 내부의 ORDER BY 절 기준으로 데이터를 정렬 후 증감률을 계산하며, 정렬 기준이 잘못되면 결과가 부정확해질 수 있으니 주의해야 한다. 또한 칼럼에 NULL 값이 존재할 경우 증감률 연산이 안되기 때문에, NULL 값이 존재할 경우 NVL 함수를 사용하여 0으로 치환 후 증감률을 계산하는 것이 좋다. 목차일별 매출 증감률 계산 방법월별 매출 증감률 계산 방법시간대별 매출 증감률 계산 방법 일별 매출 증감률 계산 방법WITH sales_data AS ( SELECT DATE '2024-01-01' AS sale_date, 1500 AS ..
오라클 SQL에서 연속된 값 사이의 차를 계산할 때는 LAG 분석함수를 사용하면 된다. 이러한 쿼리를 작성할 때는 LAG 또는 LEAD 함수와 같은 분석 함수를 사용하여 이전 또는 다음 행의 값을 참조할 수 있다. 분석함수는 OVER 절과 함께 사용하며, OVER 절 내부의 ORDER BY 조건으로 데이터를 정렬 후 연속된 값의 차이를 계산한다. 칼럼 값에 NULL이 포함되어 있을 경우 차이를 계산하지 못한다. 이를 방지하기 위해 NVL 함수 등을 사용하여 NULL 값을 0으로 치환하여 계산하는 것이 좋다. 목차연속된 값 사이의 차이 계산 방법연속된 값 사이의 차이 계산 시 주의할 점 연속된 값 사이의 차이 계산 방법SELECT empno , ename , job , hiredate..
오라클 SQL에서 두 날짜 사이의 차이를 계산할 때는 빼기(-) 연산자를 사용하여 두 날짜를 빼 주면 된다. 날짜에 시간이 포함되어 있다면 소수점이 포함된 일수로 반환될 수 있으므로 주의해야 한다. 이를 해결하기 위해 TRUNC 함수를 사용하여 날짜의 시간을 미리 제거하거나, 소수점을 반올림하거나 제거하는 방법이 필요하다. 두 날짜의 차이를 일수뿐만 아니라 시, 분, 초까지 계산하려면 적절한 함수와 계산 공식을 사용하면 된다. 아래의 예시 쿼리를 참고하면 된다. 목차두 날짜 사이 일수 계산하기일수 계산시 시간이 포함되어 있을 경우일수 뿐만 아니라 시, 분, 초 까지 계산하기 두 날짜 사이 일수 계산하기SELECT TO_DATE('2024-06-03', 'YYYY-MM-DD') - TO_DATE..
오라클 SQL에서 주말과 공휴일을 제외하고 평일만 구하기 위해서는, TO_CHAR 함수를 사용하여 일요일과 토요일을 제외하고, 공휴일 마스터 테이블과 조인하여 공휴일을 제외하면 된다. CONNECT BY 절을 사용하여 시작일자와 종료일자를 입력하면 해당 기간 동안의 모든 날짜를 조회할 수 있는 날짜 뷰를 만들 수 있다. 공휴일 마스터는 실무에서는 실제 테이블로 생성하여 연도 별로 공휴일을 입력하여 사용하고 있다. 목차지정된 기간에 공휴일 표시하기지정된 기간에 주말, 공휴일 제외하기 지정된 기간에 공휴일 표시하기WITH date_list AS ( SELECT TO_DATE('2024-05-01', 'YYYY-MM-DD') + LEVEL - 1 AS work_date FROM dual CO..