반응형
근속기간(년, 월, 일) 구하기 - 오라클(Oracle) 쿼리(Query)
근속년수 조회 쿼리 - 오라클(Oracle)
-- 근속년수 조회 - 년수 / 개월수 / 일수 계산 쿼리
SELECT A.EMP_NAME AS "직원명"
, TO_CHAR(A.EMP_STRT_YMD, 'YYYY-MM-DD') AS "입사일"
, TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS "현재(기준일)"
, TRUNC(MONTHS_BETWEEN(SYSDATE, A.EMP_STRT_YMD) / 12) AS "년(근속)"
, TRUNC(MOD(MONTHS_BETWEEN(SYSDATE, A.EMP_STRT_YMD) / 12, 1) * 12) AS "개월(근속)"
, TRUNC(MOD(MOD(MONTHS_BETWEEN(SYSDATE, A.EMP_STRT_YMD) / 12, 1) * 12, 1) * (365 / 12)) AS "일(근속)"
FROM ( -- 직원정보 테이블 (직원명, 입사일)
SELECT '홍길동' AS EMP_NAME, TO_DATE('2020-01-01', 'YYYY-MM-DD') AS EMP_STRT_YMD FROM DUAL UNION ALL
SELECT '강감찬' AS EMP_NAME, TO_DATE('2021-01-01', 'YYYY-MM-DD') AS EMP_STRT_YMD FROM DUAL UNION ALL
SELECT '이순신' AS EMP_NAME, TO_DATE('2022-01-01', 'YYYY-MM-DD') AS EMP_STRT_YMD FROM DUAL
) A
;
쿼리결과
쿼리설명
"~년 ~개월 ~일" 로 근속기간을 보여주기 위한 쿼리이다.
12개월을 나눠서 정수만으로 "년수"로 사용하고,
남은 값(1미만)으로 다시 12개월을 곱해 정수값을 만들어 "개월수"로 사용하고,
나머지 일수를 계산하는 방법이다.
(간단정리)
년수계산 > 남은 값으로 개월수 계산 > 남은 값으로 일수 계산
반응형
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] 문자열에서 콤마(,) 단위로 행(row)으로 분리하는 쿼리 (콤마별 행분리) (68) | 2023.02.06 |
---|---|
Oracle] 전화번호 형식으로 변환하는 쿼리 (하이픈 넣어주는 쿼리) (36) | 2022.12.30 |
Oracle] 숫자 데이터만 추출하기 (21) | 2022.12.29 |
[ORACLE] 오라클 SQL 만년 달력 만들기 - 이번달 + 날짜지정(특정일자) (12) | 2022.12.29 |
[Oracle] 로또쿼리 - 로또 번호 생성(추출) 쿼리 (2) | 2022.12.29 |