[SQL] 형변환 함수 예제

정은아·2022년 8월 26일
0

Q. 현재 날짜를 문자형으로 변환하여 출력하는 쿼리문

SELECT SYSDATE,TO_CHAR(SYSDATE,'YYYY-MM-DD') from dual;

Q. emp 테이블에서 사원들의 입사일을 출력하되, 요일까지 함꼐 출력하는 쿼리문

select hiredate, to_char(hiredate,'YYYY-MM-DD DY') from emp;      
select hiredate, to_char(hiredate,'YYYY-MM-DD DAY') from emp;

Q. 현재 날짜와 시간을 출력하는 쿼리문

select sysdate,to_char(sysdate,'YYYY-MM-DD HH24:MI.SS') from dual;

.L : 각지역 별 통화(돈단위) 기호를 앞에 붙이고 천 단위마다 콤마를 붙여서 출력하는 쿼리문

select ename,sal,TO_CHAR(sal,'L999,999') from emp;

select ename,sal,TO_CHAR(sal,'L000,000') from emp;

Q. 1981년 2월 20일에 입사한 사원을 검색하는 쿼리문

SELECT ENAME,HIREDATE from emp where HIREDATE=19810220; 

//형 불일치
=> 에러 이유는 입사일 컬럼의 데이터 형은 DATE이므로 WHERE절에 숫자형으로 기술하면 데이터형이 일치하지 않기 떄문에 오류가 발생한다.
오류가 발생하지 않게 하려면, 비교할 두 데이터의 자료형태를 맞추어야 한다.

SELECT ENAME,HIREDATE from emp where HIREDATE='19810220'; 
// 이러면 해결되긴 함
SELECT ENAME,HIREDATE from emp where HIREDATE=TO_DATE(19810220,'YYYY/MM/DD'); 
//이게 형변환

Q. 2021년12월20일에서 오늘까지 며칠이 지났나요?

select sysdate, trunc(sysdate-to_date('2021/12/20','YYYY/MM/DD')) from dual; 

//to_date 안 하고 그냥 빼면 안된다.(,'YYYY/MM/DD'))
=>포맷형식 꼭 적어주기

Q. emp테이블에서 급여를 \88,950처럼 나오게 하고
이름 급여 형식으로 출력하세요
SMITH \88,980

select ename 이름,to_char(sal,'L999,999')급여 from emp;
select ename as "이름",to_char(sal,'L999,999')as "급여" from emp;
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글