[Oracle] 데이터 타입 : NUMBER, DATE [NUMBER 타입 특징, DATE 타입 산술연산, SYSDATE]

2022. 3. 5. 23:46·▣ SQL : Database/Oracle SQL🏮
728x90


1. 데이터 타입 : NUMBER

※ NUMBER(precision, scale)
- precision : 소수점을 포함하는 전체 자리수

- scale : 소수점 이하 자리수

가변길이 데이터 타입
으로 숫자를 저장하며, 최대 38자리까지 저장 가능

(저장 가능한 숫자의 범위 : 1.0 × 10^-130 ~ 96.9 … × 10^125)

- NUMBER 타입의 특징

  • 정수는 NUMBER(precision), 소수는 NUMBER(precision, scale)의 형식으로 입력한다.
  • NUMBER 데이터 타입은 지정된 자리 이하에서 반올림되어 저장된다.
  • precision을 지정하지 않고 숫자를 입력하는 경우, 입력되는 숫자값의 크기만큼 저장공간이 할당된다.
  • scale을 지정하지 않고 소수점을 입력하는 경우, 소수점이 반올림되어 정수값만 저장된다.

-- NUMBER 데이터 타입
SELECT 3.14 FROM DUAL;

 

NUMBER 데이터 타입


CREATE TABLE EX (
    A NUMBER(3, 2),
    B NUMBER(5),
    C NUMBER(5, -2)
);

INSERT INTO EX VALUES (3.14, 3.14, 3.14);
-- A: 3.14, B: 3, C: 0 출력

 

scale에 따라 출력이 달라진다.

- 에러 노트(Error Note)

 

[Error Note] ORA-01438: value larger than specified precision allowed for this column[이 열에 대해 지정된 전체 자릿

- ORA-01438: value larger than specified precision allowed for this column ORA-01438: value larger than specified precision allowed for this column → 해당 열에 지정된 전체 자리수를 초과하..

yermi.tistory.com


2. 데이터 타입 : DATE

날짜와 시간 정보를 저장하기 위한 데이터 타입(세기, 년도, 월, 일, 시간, 분, 초)
→ 날짜 데이터 입력 시, 월, 일을 지정하지 않으면 입력되는 시점을 기준으로 해당 월과 1일이 입력, 시간을 지정하지 않으면 12:00:00로 입력된다.

 

-- DATE 타입의 날짜 반올림
SELECT
    ROUND(SYSDATE, 'YY') Y, -- 년 반올림
    ROUND(SYSDATE, 'MM') M, -- 월 반올림
    ROUND(SYSDATE, 'DD') D  -- 일 반올림, 'DD' 생략 가능
FROM DUAL;

 


-- 시간 생략 시, 00:00:00으로 초기화
SELECT TO_CHAR(TO_DATE('94/11/02'), 'YY/MM/DD HH24:MI:SS') FROM DUAL;

 

시간 생략 시, 00:00:00으로 초기화

- DATE 타입 간 산술 연산

SELECT
    TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') "NOW", -- 현재 시간
    TO_CHAR(SYSDATE + 3, 'YY/MM/DD HH24:MI:SS') "3DAY_AFTER", -- 3일 뒤
    TO_CHAR(SYSDATE + 3 / 24, 'YY/MM/DD HH24:MI:SS') "3HOURS_AFTER", -- 3시간 뒤
    TO_CHAR(SYSDATE + 30 / 24 / 60, 'YY/MM/DD HH24:MI:SS') "30MINUTES_AFTER", -- 30분 뒤
    TO_CHAR(SYSDATE + 30 / 24 / 60 / 60, 'YY/MM/DD HH24:MI:SS') "30SECONDS_AFTER", -- 30초 뒤
    TO_CHAR(SYSDATE + 3 * 365, 'YY/MM/DD HH24:MI:SS') "3YEARS_AFTER", -- 3년 뒤
    ADD_MONTHS(TO_DATE('22/01/31'), 1) "1MONTH_AFTER" -- 1달 뒤
FROM DUAL;

 

DATE 타입과 NUMBER 타입은 산술연산이 가능하다.


-- 태어난 날 조회
SELECT STUDNO, NAME, BIRTHDATE, SYSDATE, ROUND(SYSDATE - BIRTHDATE) LIFE
FROM STUDENT;

 

SQL의 DATE 타입은 '-' 연산자를 쓸 수 있다.

- SYSDATE : 시스템의 현재 날짜와 시간을 반환하는 함수

-- 현재 시간 출력(시스템 기준)
SELECT SYSDATE FROM DUAL;

 

SYSDATE : 시스템의 현재 날짜와 시간을 반환

728x90
'▣ SQL : Database/Oracle SQL🏮' 카테고리의 다른 글
  • [Oracle] WHERE 절 : 조건 검색 [비교 연산자(=, <, >), 논리 연산자(AND, OR, NOT)]
  • [Oracle] ROWNUM, DUAL [의사열(Pseudo Column), 계산 및 함수 실행을 위한 테스트 테이블]
  • [Oracle] 데이터 타입의 종류, 문자형 데이터(CHAR, VARCHAR2) [문자형 데이터 타입의 비교(CHAR, VARCHAR2), 문자열 고정길이, 가변길이]
  • [Oracle] DISTINCT, 합성 연산자, 산술 연산자 [중복행 출력 금지, Concatenation('||'), '+', '-', '*', '/']
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    Project
    꿀팁
    javascript
    자바스크립트
    SQL
    Error Note
    코딩 테스트
    프로그래밍
    Oracle
    spring
    CSS
    BOJ
    코딩
    Database
    백준
    백준 티어
    jsp
    html
    Java
    일상
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[Oracle] 데이터 타입 : NUMBER, DATE [NUMBER 타입 특징, DATE 타입 산술연산, SYSDATE]
상단으로

티스토리툴바