본문 바로가기

데이터베이스/ORACLE

7. 날짜형 ( DATE )

1. 날짜형

  • 날짜 자료형은 기본형인 DATE와 시간대 정보를 저장하는 TIMESTAMP타입이 제공

1) DATE

  • 기본 날자정보(년,월,일,시,분,초:'YYYY/MM/DD HH24:MI:SS')를 저장
  • 4712년 1월 1일~9999년 12월 31일까지 저장

( 사용형식 )

컬럼명 DATE;

날짜 형식의 칼럼은 사칙연산 중 '+'와 '-'연산이 가능

예제)

CREATE TABLE TEMP06(
  COL1  DATE,
  COL2  DATE);
  
INSERT INTO TEMP06(COL1,COL2) VALUES(SYSDATE, TO_DATE('20190605')); 
-- 문자열은 날짜타입으로 자동 형변환되어진다.
-- 변환함수 TO_DATE 안써도 된다. 문자열안에 년월일 자료가 다들어있으면 가능

INSERT INTO TEMP06(COL1,COL2) VALUES(SYSDATE+30,SYSDATE-30); 

SELECT * FROM TEMP06;
SELECT COL1 - COL2  FROM TEMP06;  
-- 두 날짜 사이의 경과된 일수 
-- 소수점이 나온이유 : 시분초까지 있기때문에 '20190605' 0시0분0초로 계산되어지기때문에

SELECT TO_CHAR(COL1, 'YYYY-MM-DD HH24:MI:SS'),
       TO_CHAR(COL2, 'YYYY-MM-DD HH24:MI:SS'),
       COL1 - COL2
  FROM TEMP06;


CREATE TABLE TEMP07(
  COL1 TIMESTAMP WITH TIME ZONE);
  
INSERT INTO TEMP07 VALUES(SYSDATE);
  
SELECT * FROM TEMP07;

SELECT * FROM TEMP06;
DELETE TEMP06;

INSERT INTO TEMP06 VALUES ('19940305','00010101');

SELECT * FROM TEMP06;

SELECT CASE WHEN MOD((COL1 - COL2-1),7)=0 THEN '일요일' 
            WHEN MOD((COL1 - COL2-1),7)=1 THEN '월요일' 
            WHEN MOD((COL1 - COL2-1),7)=2 THEN '화요일' 
            WHEN MOD((COL1 - COL2-1),7)=3 THEN '수요일' 
            WHEN MOD((COL1 - COL2-1),7)=4 THEN '목요일' 
            WHEN MOD((COL1 - COL2-1),7)=5 THEN '금요일' 
            ELSE '토요일' END "요일"                             
  FROM TEMP06;

2) TIMESTAMP

  • 시간대(TIME ZONE)정보와 10억 분의 1초 단위의 시작 정보 저장

( 사용형식 )

컬럼명 TIMESTAMP;
컬럼명 TIMESTAMP WITH TIME ZONE;
컬럼명 TIMESTAMP WITH LOCAL TIME ZONE;

예제)

CREATE TABLE TEMP08(
  COL1 TIMESTAMP,
  COL2 TIMESTAMP WITH TIME ZONE,
  COL3 TIMESTAMP WITH LOCAL TIME ZONE);

INSERT INTO TEMP08 VALUES(SYSDATE, SYSDATE, SYSDATE);
SELECT * FROM TEMP08;

 

3._date.sql
0.00MB

'데이터베이스 > ORACLE' 카테고리의 다른 글

9. SELECT  (0) 2021.03.15
8. 기타 자료형 ( RAW, BFILE, BLOB )  (0) 2021.03.15
6. 숫자형 ( NUMBER )  (0) 2021.03.15
5. 문자열 ( VARCHAR, CLOB )  (0) 2021.03.15
4. SQL명령 / 자료형 ( CHAR )  (0) 2021.03.15