반응형
SYSDATE
현재 시스템 날짜를 반환
MONTHS_BETWEEN
두 날짜 사이의 개월수 반환
DATE1-DATE2 = 개월수로 계산되어 DATE2가 더 미래인 경우 음수로 반환된다
MONTHS_BETWEEN(DATE1, DATE2)
--각 직원별 근무일수, 근무개월수
SELECT EMP_NAME
,FLOOR(SYSDATE-HIRE_DATE)||'일' 근무일수
,FLOOR(MONTHS_BETWEEN(SYSDATE,HIRE_DATE))||'개월' 근무개월수
FROM EMPLOYEE;
ADD_MONTHS
특정 날짜에 입력 숫자만큼의 개월수를 더한 날짜를 반환
ADD_MONTHS(DATE, NUMBER)
--오늘 날짜로부터 5개월 이후
SELECT ADD_MONTHS(SYSDATE,5)
FROM DUAL;
--오늘부터 100일후
SELECT SYSDATE+100 AS "100일후"
FROM DUAL;
--사원들의 입사 1주년
SELECT EMP_NAME, HIRE_DATE, ADD_MONTHS(HIRE_DATE,12) AS "입사 1주년"
FROM EMPLOYEE;
NEXT_DAY
특정 날짜에서 가장 가까운 입력 요일을 찾아 해당 날짜를 반환
NEXT_DAY(특정날짜, 찾고싶은요일)
SELECT NEXT_DAY(SYSDATE,'토요일')
FROM DUAL;
SELECT NEXT_DAY(SYSDATE,'토')
FROM DUAL;
-- 1:일요일 2:월 3:화 4:수 5:목 6:금 7:토
SELECT NEXT_DAY(SYSDATE,7)
FROM DUAL;
--토요일 : SATURDAY => 언어가 한글로 되어있어서 오류남, 언어에 AMERICAN 설정시 실행됨
SELECT NEXT_DAY(SYSDATE, 'SATURDAY')
FROM DUAL;
LAST_DAY
특정 날짜 달의 마지막 날짜를 구하여 반환
LAST_DAY(DATE)
SELECT LAST_DAY(SYSDATE)
FROM DUAL;
--이름, 입사일, 입사한달의 마지막날 조회
SELECT EMP_NAME, HIRE_DATE, LAST_DAY(HIRE_DATE)
FROM EMPLOYEE;
EXTRACT
특정 날짜의 년 OR 월 OR 일 정보를 추출하여 반환
EXTRACT(YEAR FROM 날짜)
EXTRACT(MONTH FROM 날짜)
EXTRACT(DAY FROM 날짜)
SELECT EXTRACT(YEAR FROM SYSDATE) AS 년
,EXTRACT(MONTH FROM SYSDATE) AS 월
,EXTRACT(DAY FROM SYSDATE) AS 일
FROM DUAL;
--사원명, 입사년도, 입사월, 입사일 조회
SELECT EMP_NAME AS 사원명
,EXTRACT(YEAR FROM HIRE_DATE) AS 입사년
,EXTRACT(MONTH FROM HIRE_DATE) AS 입사월
,EXTRACT(DAY FROM HIRE_DATE) AS 입사일
FROM EMPLOYEE;
반응형
'DB(SQL)' 카테고리의 다른 글
[SQL] 단일행 함수 - 형변환 함수 TO_CHAR (0) | 2022.03.26 |
---|---|
[SQL] DDL 데이터 정의 언어 변경 (0) | 2022.03.26 |
[SQL] 숫자 관련 함수 (0) | 2022.03.26 |
[SQL] 문자열 함수 - LOWER/UPPER/INITCAP, CONCAT (0) | 2022.03.26 |
[SQL] 문자열 함수 - TRIM, REPLACE (0) | 2022.03.26 |