날짜관련 단일행함수의 종류
(1) 기본적인 DATE타입의 연산
SELECT SYSDATE "오늘",
SYSDATE + 1 "내일", -- 24시간 뒤
SYSDATE - 2 "그저께",
SYSDATE + 1/24 "한시간 뒤"
FROM dual;
* 날짜 차이 계산
SELECT SYSDATE "오늘",
SYSDATE - TO_DATE('2019-09-09') "9일로부터 몇일?"
FROM dual;
(2) MONTHS_BETWEEN()
두 날짜 사이의 개월 수 차이
SELECT MONTHS_BETWEEN('2019-03-01','1919-03-01') 양수결과,
MONTHS_BETWEEN('1919-03-01','2019-03-01') 음수결과,
MONTHS_BETWEEN('2018-09-20','2018-09-01') "9/20과 9/01",
--한달을 1로 놓았을 때 20-1=19일은 0.6의 크기
FROM dual;
Ex) t_professor 테이블에서 오늘(SYSDATE)을 기준으로 근속연수, 근속개월, 근속일를 계산해서 출력하라
단, 날짜양식은 YYYY-MM-DD 로, 근속개월, 근속일은 반올림 하여 소수점 1자리까지 표현한다.
= SELECT NAME 이름,
TO_CHAR(SYSDATE,'YYYY-MM-DD') 오늘날짜,
TO_CHAR(HIREDATE, 'YYYY-MM-DD') 입사일,
TO_CHAR(SYSDATE,'YYYY') - TO_CHAR(HIREDATE, 'YYYY') 근속연수,
ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE), 1) 근속개월,
ROUND(SYSDATE - HIREDATE, 1) "근속일"
FROM t_professor
ORDER BY "근속연수" DESC;
--OREDER BY 뒤에는 별칭이 올 수 있다. 또 컬럼번호로도 정렬이 가능
--ORDER BY 4 DESC; 위와 동일한 명령 실행됨 4란 근속연수 컬럼의 번호
(3) ADD_MONTH(DATE, N)
DATE에 n개월을 더하기
SELECT SYSDATE,
ADD_MONTHS(SYSDATE, 3)
FROM dual;
(4) LAST_DAY()
(5) NEXT_DAY()
SELECT SYSDATE "오늘",
LAST_DAY(SYSDATE) "이달의 마지막 날",
NEXT_DAY(SYSDATE, '금') "다음 금요일"
FROM dual;
(6) ROUND()
(7) TRUNC()
SELECT SYSDATE,
ROUND(SYSDATE),
TRUNC(SYSDATE)
FROM dual;
'SQL > Oracle' 카테고리의 다른 글
11_SQL JOIN문 (0) | 2019.09.26 |
---|---|
10_SQL함수(6) 그룹함수 (0) | 2019.09.24 |
08_SQL함수(3) 단일행함수: 형변환함수 (0) | 2019.09.22 |
07_SQL함수(2) 단일행함수: 일반함수(NVL, NVL2) (0) | 2019.09.22 |
06_SQL함수(1) 단일행함수: 문자함수 (0) | 2019.09.20 |
날짜관련 단일행함수의 종류
(1) 기본적인 DATE타입의 연산
SELECT SYSDATE "오늘",
SYSDATE + 1 "내일", -- 24시간 뒤
SYSDATE - 2 "그저께",
SYSDATE + 1/24 "한시간 뒤"
FROM dual;
* 날짜 차이 계산
SELECT SYSDATE "오늘",
SYSDATE - TO_DATE('2019-09-09') "9일로부터 몇일?"
FROM dual;
(2) MONTHS_BETWEEN()
두 날짜 사이의 개월 수 차이
SELECT MONTHS_BETWEEN('2019-03-01','1919-03-01') 양수결과,
MONTHS_BETWEEN('1919-03-01','2019-03-01') 음수결과,
MONTHS_BETWEEN('2018-09-20','2018-09-01') "9/20과 9/01",
--한달을 1로 놓았을 때 20-1=19일은 0.6의 크기
FROM dual;
Ex) t_professor 테이블에서 오늘(SYSDATE)을 기준으로 근속연수, 근속개월, 근속일를 계산해서 출력하라
단, 날짜양식은 YYYY-MM-DD 로, 근속개월, 근속일은 반올림 하여 소수점 1자리까지 표현한다.
= SELECT NAME 이름,
TO_CHAR(SYSDATE,'YYYY-MM-DD') 오늘날짜,
TO_CHAR(HIREDATE, 'YYYY-MM-DD') 입사일,
TO_CHAR(SYSDATE,'YYYY') - TO_CHAR(HIREDATE, 'YYYY') 근속연수,
ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE), 1) 근속개월,
ROUND(SYSDATE - HIREDATE, 1) "근속일"
FROM t_professor
ORDER BY "근속연수" DESC;
--OREDER BY 뒤에는 별칭이 올 수 있다. 또 컬럼번호로도 정렬이 가능
--ORDER BY 4 DESC; 위와 동일한 명령 실행됨 4란 근속연수 컬럼의 번호
(3) ADD_MONTH(DATE, N)
DATE에 n개월을 더하기
SELECT SYSDATE,
ADD_MONTHS(SYSDATE, 3)
FROM dual;
(4) LAST_DAY()
(5) NEXT_DAY()
SELECT SYSDATE "오늘",
LAST_DAY(SYSDATE) "이달의 마지막 날",
NEXT_DAY(SYSDATE, '금') "다음 금요일"
FROM dual;
(6) ROUND()
(7) TRUNC()
SELECT SYSDATE,
ROUND(SYSDATE),
TRUNC(SYSDATE)
FROM dual;
'SQL > Oracle' 카테고리의 다른 글
11_SQL JOIN문 (0) | 2019.09.26 |
---|---|
10_SQL함수(6) 그룹함수 (0) | 2019.09.24 |
08_SQL함수(3) 단일행함수: 형변환함수 (0) | 2019.09.22 |
07_SQL함수(2) 단일행함수: 일반함수(NVL, NVL2) (0) | 2019.09.22 |
06_SQL함수(1) 단일행함수: 문자함수 (0) | 2019.09.20 |