DB- 날짜함수
- 현재 시간을 얻는 함수
SELECT SYSDATE, CURRENT_DATE, SYSTIMESTAMP, CURRENT_TIMESTAMP FROM DUAL;
-> SYSDATE: 시분초 SYSTIMESTAMP : 시분초 ms
- 세션 시간과 포멧 변경
ALTER SESSION SET TIME_ZONE= '-1:0' ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
- 날짜 추출함수 EXTRACT(YEAR/MONTH/DAY/HOUR/MINUTE/SECOND FROM…)
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL; SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL; SELECT EXTRACT(MINUTE FROM SYSDATE) FROM DUAL; SELECT EXTRACT(SECOND FROM SYSDATE) FORM DUAL;
ex) 가입 회원중에 비수기(2,3,11,12)월 달에 가입한 회원을 조회하시오.
SELECT * FROM MEMBERS WHERE EXTRACT(MONTH FROM REGDATE) IN (2,3,11,12);
- 날짜를 누적하는 함수 ADD_MONTH(날짜,정수)
SELECT ADD_MONTHS(SYSDATE, 1) FROM DUAL; SELECT ADD_MONTHS(SYSDATE, -1) FROM DUAL;
ex) 가입 회원 중에 가입한지 6개월이 안되는 회원을 조회하시오.
SELECT * FROM MEMBERS WHERE ADD_MONTHS(SYSDATE,-6) < REGDATE;
- 날짜의 차이를 알아내는 함수 MONTHS_BETWEEN (날짜, 날짜)
SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2013-12-25')) FROM DUAL;
EX) 위예를 활용해서 MONTHS_BETWEEN 을 써보자
SELECT * FROM MEMBERS WHERE MONTHS_BETWEEN(SYSDATE, REGDATE) <6>;
- 다음 요일을 알려주는 함수 NEXT_DAY(현재날짜, 다음요일)
SELECT NEXT_DAY(SYSDATE, '토요일') FROM DUAL; SELECT NEXT_DAY(SYSDATE, '토') FROM DUAL; SELECT NEXT_DAY(SYSDATE, 7) FROM DUAL; --7은 토요일에 해당한다.
- 월의 마지막 일자를 알려주는 함수 LAST_DAY(날짜)
SELECT LAST_DAY(SYSDATE) FROM DUAL;
- 지정된 범위에서 날짜를 반올림하는 / 자르는 함수 ROUNT/TRUNC(날짜,포맷)
SELECT ROUND(SYSDATEM 'CC'), TRUNC(SYSDATE, 'CC') FROM DUAL; SELECT ROUND(SYSDATEM 'YEAR'), TRUNC(SYSDATE, 'YEAR') FROM DUAL; SELECT ROUND(SYSDATEM 'Q'), TRUNC(SYSDATE, 'Q') FROM DUAL; SELECT ROUND(SYSDATEM 'MONTH'), TRUNC(SYSDATE, 'MONTH') FROM DUAL; SELECT ROUND(SYSDATEM 'W'), TRUNC(SYSDATE, 'W') FROM DUAL; SELECT ROUND(SYSDATEM 'DAY'), TRUNC(SYSDATE, 'DAY') FROM DUAL; SELECT ROUND(SYSDATEM 'D'), TRUNC(SYSDATE, 'D') FROM DUAL; SELECT ROUND(SYSDATEM 'HH'), TRUNC(SYSDATE, 'HH') FROM DUAL; SELECT ROUND(SYSDATEM 'MI'), TRUNC(SYSDATE, 'MI') FROM DUAL;
댓글남기기