SQL 함수(날짜 함수)
1. sysdate : 시스템의 현재 날짜
2. months_betweend : 날짜와 날짜 사이의 개월 계산
(1월 1일, 1월 31일 을 모두 1개월로 계산하므로 사용에 유의)
3. add_months :날짜에 개월을 더한 날짜
4. next_date : 날짜후의 첫 월요일 날짜
5. last_day : 월의 마지막 날짜
6. round : 날짜 반올림
7. trunc : 날짜 내림
참고 : 날짜 형식 YYYY(RRRR) : 네 자리 연도(숫자) YEAR : 연도 (문자) MM : 두자리 값으로 나타낸 달 MONTH : 달 전체 이름(영문) MON : 세 자 약어로 나타난 달(영문) DY : 세 자 약어로 나타낸 요일 DAY : 요일 전체 이름 DD : 숫자로 나타낸 달 WW : 해당 년에서 몇 주차인지 표시(1~53주) W : 해당 월에서 몇 주차인지 표시(1~5주) AM / PM : 오전/오후 A.M / P.M. : 마침표 포함 오전/오후 HH / HH12 / HH24 : 시간 표시 MI : 분 SS : 초 SSSSS : 자정부터의 초
SQL> select sysdate from dual; SYSDATE ------------ 04-JAN-12 1 select profno, hiredate, months_between(sysdate, hiredate), add_months(hiredate, 6) 2* from professor SQL> / PROFNO HIREDATE MONTHS_BETWEEN(SYSDATE,HIREDATE) ADD_MONTHS(H ---------- ------------ -------------------------------- ------------ 9901 24-JUN-82 354.382304 24-DEC-82 9902 12-APR-95 200.7694 12-OCT-95 9903 17-MAY-93 223.60811 17-NOV-93 9904 02-DEC-98 157.091981 02-JUN-99 9905 08-JAN-86 311.898433 08-JUL-86 9906 13-SEP-88 279.737142 13-MAR-89 9907 01-JUN-01 127.124239 01-DEC-01 9908 18-NOV-90 253.575852 18-MAY-91 8 rows selected. SQL> select sysdate, last_day(sysdate), next_day(sysdate, 'SAT') 2 from dual; SYSDATE LAST_DAY(SYS NEXT_DAY(SYS ------------ ------------ ------------ 04-JAN-12 31-JAN-12 07-JAN-12 SQL> select to_char(sysdate, 'yy/mm/dd hh24:mi:ss') normal, 2 to_char(trunc(sysdate), 'yy/mm/dd hh24:mi:ss') trunc, 3 to_char(round(sysdate), 'yy/mm/dd hh24:mi:ss') round 4 from dual; NORMAL TRUNC ROUND ----------------- ----------------- ----------------- 12/01/04 20:29:04 12/01/04 00:00:00 12/01/05 00:00:00 -- 현재 세션에서 날짜파라미터 값 조회 select * from nls_session_parameters where parameter='NLS_DATE_LANGUAGE'; PARAMETER VALUE -------------------- -------------------- NLS_DATE_LANGUAGE ENGLISH -- 요일을 조회해보면 영문으로 출력됨 select to_char(sysdate,'day') from dual; TO_CHAR(S --------- tuesday -- 현재 세션에서 날짜파라미터를 한글로 변경 alter session set nls_date_language='KOREAN'; -- 한글로 출력됨 select to_char(sysdate,'day') from dual; TO_CHA ------ 화요일 -- 현재 날짜 포멧을 확인함 select * from nls_session_parameters where parameter='NLS_DATE_FORMAT'; PARAMETER VALUE -------------------- -------------------- NLS_DATE_FORMAT RR/MM/DD -- 날짜를 조회해 봄 select sysdate from dual; SYSDATE -------- 12/09/25 -- 현재 세션의 날짜 포멧을 변경함 alter session set nls_date_format='RRRR-MM-DD HH24:MI:SS'; -- 날짜를 조회해 봄 select sysdate from dual; SYSDATE ------------------- 2012-09-25 17:48:13
참고 : 영문명으로 된 월을 가져올 때-- 일시적으로 가져올 때 select to_char(sysdate, 'MON', 'NLS_DATE_LANGUAGE=ENGLISH') from dual; -- 현재세션에서 날짜 파라미터를 영문으로 변경 alter session set nls_date_language='ENGLISH';
최신 댓글