데이터베이스

DATABASE STEP 12 - Casting_Function

2023. 3. 18. 10:41
728x90

★ 형변환 함수

  • 1. to_char(숫자) : 숫자 > 문자
  • 2. to_char(날짜) : 날짜 > 문자 *****
  • 3. to_number(문자) : 문자 > 숫자
  • 4. to_date(문자) : 문자 > 날짜 ********

 

■ 1. to_char(숫자, 형식문자열)

  • 형식문자열 구성요소
    • a. 9 : 숫자 1개를 문자 1개로 바꾸는 역할. ex) '@' || to_char(weight, '99999') || '@', 5자리를 확보하는데 부족한 자리는 스페이스로 채움 > 빈자리를 스페이스로 치환 >%5d
    • b. 0 : 숫자 1개를 문자 1개로 바꾸는 역할. ex) '@' || to_char(weight, '00000') || '@' 5자리를 확보하는데 부족한 자리는 0으로 채움 > 빈자리를 0으로 치환 > %05d
    • c. $ : 통화 기호 표현
    • d. L : 통화 기호 표현
    • e. . : 소수점
    •  f. , : 천단위
  • 사용 ex)
select
    weight,                 -- 우측정렬(숫자)
    to_char(weight) ,      -- 좌측정렬(문자)
    
    length(weight),         -- length() 문자열 함수 > weight 숫자
    length(to_char(weight))
    
from tblComedian;

select 
    weight,
    '@' || to_char(weight) || '@',
    '@' || to_char(weight, '99999') || '@',
    '@' || to_char(weight,'00000') || '@'
from tblComedian;

select
    100,
    to_char(100, '$999'),
    to_char(100, 'L999'),
    to_char(100, '999') || '달러' ,
    to_char(100, '999') || '원'
from dual;

select
    1234567.89,
    to_char(1234567.89, '9,999,999.9') --%,d
from dual;

 

■ 2. to_char(날짜)

  • 날짜 > 문자
  • char to_char(컬럼, 형식문자열)
  • 형식문자열 구성요소
    • a. yyyy
    • b. yy
    • c. month
    • d. mon
    • e. mm
    • f. day
    • g. dy
    • h. ddd
    • i. dd
    • j. d
    • k. hh
    • l. hh24
    • m. mi
    • n. ss
    • o. am(pm)
  • 사용 ex)
select sysdate from dual;
select to_char(sysdate) from dual;
select to_char(sysdate, 'yyyy') from dual;      -- 년 (4자리)      *****************
select to_char(sysdate, 'yy') from dual;         -- 년 (2자리)
select to_char(sysdate, 'month') from dual;    -- 월(풀네임)
select to_char(sysdate, 'mon') from dual;       --월(약어)
select to_char(sysdate, 'mm') from dual;        --월(2자리)      *****************
select to_char(sysdate, 'day') from dual;        --요일(풀네임)
select to_char(sysdate, 'dy') from dual;         --요일(약어)
select to_char(sysdate, 'ddd') from dual;       --일(올해의 며칠)
select to_char(sysdate, 'dd') from dual;        --일(이번달의 며칠)      *****************
select to_char(sysdate, 'd') from dual;          --일(이번주의 며칠) == 요일(숫자)
select to_char(sysdate, 'hh') from dual;        --시(12시간)
select to_char(sysdate, 'hh24') from dual;     --시(24시간)      *****************
select to_char(sysdate, 'mi') from dual;        --분      *****************
select to_char(sysdate, 'ss') from dual;        --초      *****************
select to_char(sysdate, 'am') from dual;       --오전/오후
select to_char(sysdate, 'pm') from dual;       --오전/오후

-- 암기@@@
select
    sysdate,
    to_char(sysdate, 'yyyy-mm-dd') as "일자",--2023-03-16
    to_char(sysdate, 'hh24:mi:ss'),
    to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
    to_char(sysdate, 'day am hh:mi:ss')
from dual;

-- 홍길동 98/10/11 1998-10-11 일요일 
select
    name, ibsadate,
    to_char(ibsadate, 'yyyy-mm-dd') as hire_date,
    to_char(ibsadate, 'day') as day,
    case
        when to_char(ibsadate, 'd') in ('1','7') then '휴일입사'
        else '평일입사'
    end
from tblInsa;

-- 날짜 상수
-- 입사날짜 > 2000년 이후
select * from tblInsa
    where ibsadate >= '2000-01-01'; -- '2000-01-01' > 문자열
    
-- 입사 날짜 > 2000년에
select * from tblInsa
    where ibsadate >= '2000-01-01 00:00:00' and ibsadate <= '2000-12-31 23:59:59'; -- 오답
    
-- 날짜 상수 > 자동으로 00:00:00 > 자정으로 세팅된다.

select * from tblInsa
    where to_char(ibsadate, 'yyyy') = '2000';

 

■ 3. to_number(문자)

select
    123,
    '123',
    to_number('123')
from dual;

select
    123*2,
    to_number('123') *2,
    '123' *2
from dual;

 

■ to_date()

  • 문자 > 날짜
  • date to_date(컬럼, 형식문자열)
select
    sysdate,            --23/03/16
    '2023-03-16',      --2023-03-16 날짜 형 아님. 문자형임!! > 여기선 형변환 발생 X
    to_date('2023-03-16'), --23/03/16
    to_date('2023-03-16', 'yyyy-mm-dd'),
    to_date('20230316'),
    to_date('20230316', 'yyyymmdd'),
    to_date('2023/03/16'),
    to_date('2023/03/16', 'yyyy/mm/dd'),
    to_date('2023-03-16 15:28:25', 'yyyy-mm-dd hh24:mi:ss') --********************
from dual;

-- 2000년에 입사한 직원
select *
from tblInsa
    where ibsadate >= '2000-01-01' and ibsadate <= '2000-12-31'; -- 시분초가 명시가 안되어 있어서 누락이 있음
    
select * from tblinsa
    where ibsadate >= to_date('2000-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
        and ibsadate <= to_date('2000-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss'); -- 시분초가 명시가 안되어 있어서 누락이 있음
728x90
저작자표시 비영리 변경금지 (새창열림)

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

DATABASE STEP 14 - Sequence  (0) 2023.03.18
DATABASE STEP 13 - DDL  (0) 2023.03.18
DATABASE STEP 11 - Date_Time_Function  (0) 2023.03.18
DATABASE STEP 10 - String_Function  (0) 2023.03.17
DATABASE STEP 9 - Numerical_Function  (0) 2023.03.17
'데이터베이스' 카테고리의 다른 글
  • DATABASE STEP 14 - Sequence
  • DATABASE STEP 13 - DDL
  • DATABASE STEP 11 - Date_Time_Function
  • DATABASE STEP 10 - String_Function
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • 앱개발자
  • 프론트엔드
  • 코딩테스트
  • 정보보안전문가
  • java
  • 정보처리기사필기
  • 백엔드
  • jquery
  • css
  • 백준
  • 웹개발자
  • 자바
  • 개발자
  • React
  • 웹페이지
  • 개발블로그
  • IT자격증공부
  • 정보처리기사
  • JavaScript
  • IT개발자
  • ajax
  • 알고리즘
  • it
  • 데이터베이스
  • jsp
  • DBA
  • DB
  • 웹개발
  • html
  • IT자격증

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
DATABASE STEP 12 - Casting_Function
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.