(사용형식)
SYSDATE ***
- 년,월,일,시,분,초 자료 변환
- 덧셈과 뺄셈의 대상
(사용형식)
ADD_MONTHS(d,n)
- 날짜자료 d에 포함된 월에 n을 더한 날짜 반환
SELECT ADD_MONTHS(SYSDATE,5),
ADD_MONTHS(SYSDATE,-2)
FROM DUAL;
(사용형식)
NEXT_DAY(d, str)
- 날짜 d 이후 맨 처음 만나는 'str'(요일)에 해당하는 날짜를 반환
- STR은 요일을 나타내는 문자열로 '월', '월요일', '화', '화요일,...을 사용
SELECT NEXT_DAY(SYSDATE,'화'),
NEXT_DAY(SYSDATE,'수'),
NEXT_DAY(SYSDATE,'금')
FROM DUAL;
환경설정에서 날짜를 한글로 설정했으므로 월 화 수,...
(사용형식)
LAST_DAY(d)
- 날짜 d에 포함된 월의 마지막일에 해당하는 날짜를 반환
- 주로 2월의 마지막일이 28일인지 29일인지 불명확할때 사용
Alias는 상품코드, 상품명, 상품수량
B.PROD_NAME AS 상품명,
SUM(A.BUY_QTY) AS 매입수량
FROM BUYPROD A, PROD B
WHERE A.BUY_PROD=B.PROD_ID
AND A.BUY_DATE BETWEEN TO_DATE('20050201') AND LAST_DATE('20050201)
GROUP BY A.BUY_PROD,B.PROD_NAME
ORDER BY 1;
(사용형식)
MONTHS_SETWEEN(d1,d2)
d1과 날짜 d2사이의 개월수 반환
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_BIR AS 출생년월일,
TRUNC(MONTHS_BETWEEN (SYSDATE,MEM_BIR)/12)||'년'||
MOD(TRUNC(MONTHS_BETWEEN(SYSDATE,MEM_BIR)),12) ||'월' AS 나이
FROM MEMBER;
(사용형식)
ROUND(d[,fmt])
- 날짜자료 d를 ‘fmt’를 기준으로 반올림 하거나 자리버림한 결과를 반환
- ‘fmt’가 생략 되면 ‘년월일’까지를 기준으로 반올림과 자리버림 수행
- 'fmt'는 YEAR|YY|YYY|YYYY, MONTH|MM, DAY|DD, '월요일',...
SELECT ROUND(SYSDATE,'MM'),ROUND(SYSDATE,'YEAR'),
TRUNC(SYSDATE,'MM'),TRUNC(SYSDATE,'YEAR'),
ROUND(SYSDATE,'DD'),
TRUNC(SYSDATE,'DD'),
TO_CHAR(ROUND(SYSDATE),'YYYY-MM-DD HH24:MI:SS'),
TO_CHAR(TRUNC(SYSDATE),'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;
(사용형식)
EXTRACT (fmt FROM d)
- 주어진 날짜자료 d에서 fmt로 표현된 요소값 반환
- fmt는 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
Alias는 일자, 매입수량, 매입금액
SELECT BUY_DATE AS 일자,
SUM(BUY_QTY) AS 매입수량,
SUM(BUY_QTY*BUY_COST) AS 매입금액
FROM BUYPROD
WHERE EXTRACT(YEAR FROM BUY_DATE)= 2005
AND EXTRACT (MONTH FROM BUY_DATE) = 3
GROUP BY BUY_DATE
ORDER BY 1;
Alias는 연령대, 마일리지합계
SELECT TRUNC(EXTRACT(YEAR FROM SYSDATE)-EXTRACT(YEAR FROM MEM_BIR),-1)||'대' AS 연령대,
SUM(MEM_MILEAGE) AS 마일리지합계
FROM MEMBER
GROUP BY TRUNC(EXTRACT(YEAR FROM SYSDATE)-EXTRACT(YEAR FROM MEM_BIR),-1)
ORDER BY 1;
만약 인원수도 나타내고 싶다면
SELECT TRUNC(EXTRACT(YEAR FROM SYSDATE)-EXTRACT(YEAR FROM MEM_BIR),-1)||'대' AS 연령대,
COUNT(*) AS 회원수,
SUM(MEM_MILEAGE) AS 마일리지합계
FROM MEMBER
GROUP BY TRUNC(EXTRACT(YEAR FROM SYSDATE)-EXTRACT(YEAR FROM MEM_BIR),-1)
ORDER BY 1;