[Oracle] 형변환 함수, Casting Function

수경·2023년 9월 3일
0
post-thumbnail

형변환 함수, Casting Function

  1. to_char(숫자) : 숫자 > 문자 (암시적 형변환 가능)
  2. to_char(날짜) : 날짜 > 문자***
  3. to_number(문자) : 문자 > 숫자 (암시적 형변환 가능)
  4. to_date(문자) : 문자 > 날짜***

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

  • 형식 문자열 구성요소
    a. 9 : 숫자 1개를 문자 1개로 바꾸는 역할. 빈자리를 스페이스로 치환 > %5d
    b. 0 : 숫자 1개를 문자 1개로 바꾸는 역할. 빈자리를 0으로 치환 > %05d
    c. $ : 통화 기호 표현
    d. L : 통화 기호 표현(Locale)
    e. . : 소수점
    f. , : 천단위 표기
SELECT
	weight,
	to_char(weight),
	length(weight),			-- 암시적 형변환
	substr(weight, 1,1),	-- 암시적 형변환
	weight||'kg'
FROM tblcomedian;

SELECT
	to_char(100, '$999'),
	to_char(100, 'L999'),
	1234567.89,
	to_char(1234567.89, '9,999,999'),
	ltrim(to_char(567.89, '9,999,999.9')),		--최대길이
	to_char(123456789123456.789, '9,999,999.9')	--공간이 부족하여 에러남
FROM dual;

2. to_char(날짜) : 날짜 > 문자***

  • char to_char(컬럼, 형식문자열)
  • 형식문자열 구성요소
    a. yyyy
    b. yy
    c. month
    d. mm
    f. day
    g. dy
    h. ddd
    i. dd
    j. d
    k. hh
    l. hh24
    m. mi
    n. ss
    o. am(pm)
SELECT 
	sysdate,
	to_char(sysdate),
	to_char(sysdate, 'yyyy'),		--년(4자리)
	to_char(sysdate, 'yy'),			--년(2자리)
	to_char(sysdate, 'month'),		--월(풀네임)
	to_char(sysdate, 'mon'),		--월(약어)
	to_char(sysdate, 'mm'),			--월(2자리)
	to_char(sysdate, 'day'),		--요일(풀네임) : 화요일
	to_char(sysdate, 'dy'),			--요일(약어) : 화
	to_char(sysdate, 'ddd'),		-- 일(올해의 며칠)
	to_char(sysdate, 'dd'),			-- 일(이번달의 며칠)
	to_char(sysdate, 'd')			-- 일(이번주의 며칠) > 요일(숫자 버전)
FROM dual;

SELECT 
	sysdate,
	to_char(sysdate, 'hh'),			-- 시(12시간 체계)
	to_char(sysdate, 'hh24'),		-- 시(24시간 체계)
	to_char(sysdate, 'mi'),			-- 분
	to_char(sysdate, 'ss'),			-- 초
	to_char(sysdate, 'am'),			-- 오전/오후 pm과통일함
	to_char(sysdate, 'pm')			-- 오전/오후 am과통일함
FROM dual;
  • 자주 사용하는 날짜, 시간 표현
SELECT
	sysdate,
	to_char(sysdate, 'yyyy-mm-dd'),
	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;

3. to_number(문자)

SELECT
	'123' * 2,		--암시적 형변환
	to_number('123') * 2
FROM dual;

4. to_date(문자, 형식문자열)

SELECT
	'2023-08-29', -- 자료형 > 문자
	to_date('2023-08-29'),
	to_date('2023-08-29', 'yyyy-mm-dd')	,	-- 'yyyy-mm-dd' 생략 가능
	to_date('20230809'),
	to_date('20230809', 'yyyymmdd'),
	to_date('2023/08/09'),
	to_date('2023-08-29 15:28:39', 'yyyy-mm-dd hh24:mi:ss')		-- 시간은 반드시 형식 문자열 기입
FROM dual;

profile
웹백엔드개발자를 꿈꾸는

0개의 댓글