티스토리 뷰


--------날짜관련 함수, TO_CHAR(), TO_NUMBER(), TO_DATE()



SYSDATE 함수

SELECT SYSDATE FROM EMPLOYEES;



MONTHS_BETWEEN 함수

SELECT CEIL(MONTHS_BETWEEN('2017/09/29','1993/09/29'))
FROM dual;


두 날짜 중 큰 날짜를 먼저 써야 결과값이 양수로 나온다.

두 날짜가 같은 달에 속해 있으면 특정 규칙으로 계산된 값이 나온다.


ADD_MONTHS 함수

SELECT SYSDATE as "시스템 시간", ADD_MONTHS(SYSDATE, 1) as "1개월을 더함" FROM dual;



TO_CHAR 함수

--오늘 날짜 포맷에 맞게 출력 SELECT TO_CHAR(SYSDATE, 'RRRR"년 " MM"월 "DD"일" HH24:MI:SS') as "년/월/일, 시:분:초" FROM dual; --사원들의 성명, 입사년를 출력 SELECT first_name as "사원 이름", TO_CHAR(hire_date, 'yyyy') as "입사 연도" FROM EMPLOYEES;

         



--사원들의 성명, 입사년, 급여를 출력
SELECT first_name as "사원 이름", TO_CHAR(hire_date, 'yyyy') as "입사 연도", SALARY as "급여" FROM EMPLOYEES; 



--입사년이 2007년인 사원들의 성명, 급여, 입사일을 조회
SELECT first_name as "2007년 입사 사원", salary as "급여", TO_CHAR(hire_date, 'rrrr') as "입사 연도"
FROM EMPLOYEES
WHERE TO_CHAR(HIRE_DATE, 'rrrr') = 2007;




--이번달에 입사한 직원들의 성명,이메일, 연락처 조회
SELECT first_name as "성명", EMAIL as "이메일", PHONE_NUMBER as "연락처", HIRE_DATE as "입사일"
FROM EMPLOYEES
WHERE TO_CHAR(HIRE_DATE, 'mm') = TO_CHAR(SYSDATE, 'mm');



--입사년수 15년 이상인 직원의 성명, 이메일, 입사일 조회
SELECT first_name as "성명", EMAIL as "이메일", HIRE_DATE as "입사일"
FROM EMPLOYEES
WHERE TO_CHAR(SYSDATE, 'yyyy') - TO_CHAR(HIRE_DATE, 'yyyy') >= 15;



--급여를 천단위 분리기호를 사용해 출력 --> 숫자로서의 기능상실
SELECT salary, TO_CHAR(salary, '999,999') as "천단위 분리 기호" FROM EMPLOYEES;



-- 급여, 세금(급여의 3.3%), 지급액(급여-세금)을 천단위 분리기호와 소숫점 2자리까지 표현하여 성명과 함께 출력
SELECT FIRST_NAME as "성명", TO_CHAR(salary, '999,999.99') as "급여", 
			TO_CHAR(salary*0.033, '999,999.99') as "세금", TO_CHAR(salary*0.967, '999,999.99') as "지급액" 
FROM EMPLOYEES;



TO_NUMBER()

숫자가 아닌 숫자처럼 생긴 문자를 숫자로 바꾸어 주는 함수.



TO_DATE()

날짜가 아닌 날짜처럼 생긴 문자를 날짜로 바꿔 주는 함수.




댓글