-- 국가 통화 날짜 등 여러가지 출력 형식 확인하는 쿼리
SELECT parameter, value FROM NLS_SESSION_PARAMETERS;
-- 국가 설정 변경
ALTER SESSION SET NLS_LANGGUAGE = 'KOREAN';
-- 통화기호 변경
ALTER SESSION SET NLS_CURRENCY = '\';
-- 기본적인 날짜 출력 형식 : RR/MM/DD
SELECT SYSDATE FROM DUAL;
=> 13/05/30
--날짜형식 변경
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
ALTER SESSION SET NLS_DATE_FORMAT = 'RR/MM/DD';
-- SYSDATE : 컴퓨터 시스템의 현재 날짜를 반환
-- CURRENT_DATE : 현재 SESSION의 날짜 정보 확인
SELECT SYSDATE, CURRENT_DATE FROM DUAL;
-- 날짜와 날짜를 빼면 일수가 계산되어 나온다.
SELECT TRUNC(SYSDATE - TO_DATE('2000-01-01','YYYY-MM-DD'))
FROM DUAL;
=> 4898 (출력한날 기준)
--RR: 1900년도를 기준으로 이전 50년도에서 이후 49년까지를 기준 년도로 하여 가까운 1850~1946년도까지의 값을 표현하고 , 이 범위를 벗어날 경우 2000년을 기준으로 이전 50년도에서 이후 29년 까지 출력 YY는 시스템 날짜를 기준으로 한다.
SELECT name, TO_DATE(SUBSTR(ssn,1,6), 'YYMMDD'),
TO_DATE(SUBSTR(ssn,1,6),'RRMMDD') FROM insa;
=> 똑같은 결과가 출력되어 보인다. 하지만 아래와 같이 변환해서 보면 차이를 알 수 있다.
SELECT name, TO_CHAR(TO_DATE(SUBSTR(ssn, 1,6), 'YYMMDD'),'YYYY-MM-DD'),
TO_CHAR(TO_DATE(SUBSTR(ssn, 1,6), 'RRMMDD'),'YYYY-MM-DD') FROM insa;
=> 위에서 첫번쨰 필드는 년도가 20XX으로 찍혀서 나오지만 2번째 필드는 19XX으로 나온다.
-- ADD_MONTHS(d,n) : 해당 날짜에 n만큼의 달수를 더한다.
SELECT SYSDATE,ADD_MONTHS(SYSDATE,5)FROM DUAL;
=> 13/10/30 처럼 출력하는날 기준으로 5달만큼 더해서 출력
-- LAST_DAY(d) : 해당월의 마지막일이 몇일인지 확인
SELECT SYSDATE,LAST_DAY(SYSDATE)FROM DUAL;
=> 13/05/31 처럼 마지막날 표시
'오라클' 카테고리의 다른 글
오라클 NULL : 값이 존재하지 않는 상태 (0) | 2013.05.30 |
---|---|
오라클 CASE ~ END : 조건에 따라 실행을 다르게 하는 조건문 (0) | 2013.05.30 |
3.변환,절삭,나머지,반올림 (0) | 2013.05.29 |
2.스칼라 함수 (단일행) (0) | 2013.05.29 |
1.오라클 기초 (0) | 2013.05.28 |