2014년 8월 6일 수요일

Date Type에 관하여[오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE/ORACLE교육/ORACLE학원/오라클실무교육]

---------- 
Date 
---------- 
1. 날자를 가르키는 값을 Tanle에 저장. 세기를 포함하여 년,월,일시,분,초,등을 저장한다. 

2. BC 4712년1월1일부터 AD 4712년 12월31일까지의 날자형식을 저장할수 있다. 

3. 7 Byte의 고정길이 Column임. 

4. Oracle의 기본날자 형식은 dd-mon-yy, NLS_DATE_FORMAT Parameter를 이용하여 기본형식을 변경할수 있다. 또는 Alter Session Command를 이용하여 해당 sssion기간동안 날자형식을 변경할수도 있다. 

5. 표준 Oracle날자 형식이 아닌 형식의 입력을 위해서는 to_date 함수를 이용한다. to_date(‘november 13, 1992’,’month dd, yyyy’) 

6. Oracle에서 시간은 24시간 형식(HH:MI:SS)으로 저장한다. 기본적으로 날자 Column의 시간을 입력하지 않은 경우 12:00:00 AM(자정)으로 저장된다. 만약 시간만 입력되면 해당월의 1일이 입력된다. Date의 time부분을 입력하려면 반드시 TO_DATE함수와 format mask를 이용해야 한다. 

7.기본적으로 일자나 연산이 빈번히 경우 DATE 타입으로 가져가는 것이 효과적일 수 있지만 시간이 정상적으로 입력된 경우 일자를 '=' 연산으로 비교할 수가 없다. 예를 들면 아래와 같다. 

INSERT INTO EMP (EMPNO,ENAME,HIREDATE,DEPTNO) 
        VALUES (7777,'BJKIM',TO_DATE('94/03/15 03:20:30','YY/MM/DD HH:MI:SS'); 

  와 같이 정상적으로 날짜를 입력한후 

  SELECT * FROM EMP WHERE HIREDATE = '15-MAR-94'; 

  을 수행 하더라도 원하는 결과를 도출할 수 없다. 뿐만 아니라 LIKE, SUBSTR등의 함수를 
이용하여 스트링(string) 비교를 하고자 할때 제한적으로 밖에 사용할 수 없다. 즉 디폴트 
날짜 형태를 기준으로만 비교 가능하다. 

예 ) 81년에 입사한 인원을 찾고자 할때 

      a.SELECT * FROM EMP WHERE HIREDATE LIKE '%81'; 
      혹은 
      b.SELECT * FROM EMP WHERE SUBSTR(HIREDATE,8,2) = '81'; 
  
  와 같이 SQL문을 날짜 타입의 기본 형태인 'DD-MON-YY'을 기준으로 스트링 함수를 사용하여야 
한다. 

예 ) 만일 HIREDATE에 인덱스가 생성 되어 있을때 아래 2가지 SQL문을 수행하게 되면 a의 경우는 인덱스를 사용하지만 b의 경우에는 인덱스를 사용 못하는 일반적 
인 문자 타입과의 차이점을 보인다. 

SELECT * FROM EMP 
WHERE HIREDATE1 = '01-MAR-81'; 

SELECT * FROM EMP 
WHERE HIREDATE1 BETWEEN '01-JAN-81' AND '31-DEC-81'; 

의 경우는 내부적으로 비교되는 값에서 투데이트 함수를 이용하여 처리를 하지만 
의 경우 컬럼 부분이 TO_CHAR을 이용하여 변동되기 때문에 인덱스를 사용할 수 없 
다.이와 같은 사항을 주의하여 쿼리문을 수행하여야 한다. 결론적으로 자주 조건절 
에 사용되거나, 데이트 연산 기록(logging), 타임 스탬프로 사용되는 컬럼을 제 
외하고는 효과적인 수행을 위해 문자  타입 적용을 고려하는 것이 효과적이다. 



평일주간[100%환급과정]
(8/08)Spring,MyBatis,Hibernate실무과정
(8/08)C#4.0,WinForm,ADO.NET
(8/11)SQL기초에서 Schema Object까지
(8/18)자바기초JDBC,Servlet/JSP까지
(8/18)안드로이드개발자과정
(8/18)PL/SQL,ORACLE HINT,TUNING
(8/25)오라클자바채용확정교육
평일야간[개인80%환급]
(8/11)SQL기초에서실무까지
(8/11)안드로이드개발자과정
(8/12)Spring, MyBatis, Hibernate
(8/13)C#,Network,ADO.NET,ASP.NET
(8/13)HTML5,CSS3,Ajax,jQuery마스터
(8/28)자바JSP,jQuery,Spring,MyBatis
주말주간[개인80%환급]
(8/09)SQL기초에서실무까지
(8/09)안드로이드개발자과정
(8/09)자바JSP,Ajax,jQuery,Spring,MyBatis
(8/16)C#,ASP.NET마스터(8/16)웹퍼블리싱 마스터
(8/16)Spring, MyBatis, Hibernate
(8/23)JAVA,Network&WEB&Framework
주말야간[개인80%환급]
(8/09)SQL기초에서실무까지
(8/23)JAVA,Network&WEB&Framework

댓글 없음:

댓글 쓰기