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';

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다