Oracle(2023-03-27)

권단비·2023년 3월 27일

Database

목록 보기
7/7
--23/03/27----------------------------------------------------------------------
--1)날짜 함수
--Date(날짜)형에 사용하는 함수이다.

select sysdate from dual;

--날짜 연산
select sysdate-1 어제, SYSDATE 오늘, SYSDATE+1 내일 FROM DUAL;

--두 날짜 사이의 개월수를 구하는 함수
--예) 각 직원들이 근무한 개월 수를 구하는 쿼리문
SELECT ENAME, SYSDATE, hiredate, months_between(sysdate,hiredate)근무개월수 FROM EMP;

--입사 날짜에서 4개월을 추가한 결과값
SELECT ENAME, HIREDATE, ADD_MONTHS(HIREDATE,4)FROM EMP;

--오늘을 기준으로 가장 가까운 다음 수요일은 언제인지 알아보는 쿼리문
SELECT SYSDATE, NEXT_DAY(SYSDATE,'수요일') FROM DUAL;

--해당 달의 마지막 날짜를 반환하는 함수이다 (2월달 28일, 29일)
SELECT HIREDATE, LAST_DAY(HIREDATE) FROM EMP;

--현재 날짜를 문자형으로 변환하여 출력하는 쿼리문
SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;

--사원들의 입사일을 출력하되, 요일까지 함께 출력하는 쿼리문
SELECT ENAME, TO_CHAR(HIREDATE,'YYYY-MM-DD DAY')FROM EMP;

--현재 날짜와 시간을 출력하는 쿼리문
SELECT SYSDATE, TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')FROM DUAL;

--각 지역별 통화 기호를 앞에 붙이고 천 단위마다 콤마를 붙여서 출력하는 쿼리문(예:$1,230,000)
SELECT ENAME, SAL, TO_CHAR(SAL,'L999,999')FROM EMP;

--자릿수가 맞지 않을 경우 0은 0으로 채워라
SELECT TO_CHAR(123456,'000000000'),TO_CHAR(123456,'999,999,999')FROM DUAL;

--문자형을 날짜형으로 변환하는 함수이다.
SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE = TO_DATE(19810220,'YYYYMMDD');
SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE = '81.02.20';
SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE = '81,02,20';
SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE = '810220';

-- 99,999 : 세 자리마다 ,를 표시한다. 20,000 - 10,000 = 10000
SELECT TO_NUMBER('20,000','99,999') - TO_NUMBER('10,000','99,999')FROM DUAL;

--NVL = null value
--NULL을 0 또는 다른 값으로 변환하기 위해서 사용하는 함수이다.

--연봉 계산을 하는 쿼리문 (COMM이 NULL인 것을, 0으로 변환하라)
SELECT * FROM EMP ORDER BY JOB;
SELECT ENAME, SAL*12 + NVL(COMM,0) FROM EMP;

0개의 댓글