본문 바로가기
Kosta DevOps 과정 280기/Java

날짜 시간 함수

by 롯슈83 2024. 6. 20.
  • sysdate : 오늘 날짜와 시간을 알려줌
select sysdate from dual;
select sysdate-1 from dual;
select sysdate+1 from dual;
  • 날짜 형식 변경 함수
    • to_date(문자, 형식) : 문자를 날짜로 변경
    • to_char(날짜, 형식) : 날짜를 문자로 변경
  • 형식
    • yyyy : 연도 4자리
    • yy : 연도 2자리 
    • mm : 월
    • dd: 일
    • hh: 시
    • mi : 분
    • ss: 초
select sysdate from dual;
select to_char(sysdate, 'yyyy') from dual;
select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;
--2020년도에 입사한 사람의 이름, 관리자명, 부서명, 입사일, 주민번호를 적는다.
--단, 주민번호는 성별까지만 나타내고 나머지는 *로 표현한다.
select ename, 
(
    select m.ename from emp m
    where e.mgr = m.eno
) 관리자명,
(
    select dname from dept d
    where e.dno = d.dno
) 부서명,
To_char(HIREDATE, 'yyyy/mm/dd'),
rpad(substr(JUMIN, 1, 8), 14, '*') 주민번호
from emp e
where To_char(HIREDATE, 'yyyy') = '2020';
-- 6월에 입사한 직원의 정보
select * from emp where To_CHAR(HIREDATE, 'mm') = '06';
select * from emp where To_CHAR(HIREDATE, 'mm') = 6;

 

  • add month(날짜, 숫자): 해당 숫자만큼 달을 더해준다.
select add_months(sysdate, 6) from dual;

/*
    개발팀에 근무하는 모든 남자직원들은 입사일로부터 1개원 이내에 채용 신체 검사서를 제출해야 한다.
    대상자의 사원번호, 사원이름, 관리자명, 입사일, 마감일을 출력하라.
    마감일 순으로 출력하고 동일할 때에는 사원이름으로 출력한다.
*/
select eno, ename, (
    select m.ename from emp m
    where e.mgr = m.eno
) 관리자명, 
TO_CHAR(hiredate, 'yyyy/mm/dd') 입사일, 
To_CHAR(ADD_MONTHS(HIREDATE, 1), 'yyyy/mm/dd') 마감일 
from emp e
where substr(jumin, 8, 1) in ('1', '3') and
dno in (select dno from dept where dname like '개발%')
order by 마감일, ename;
  • 여기서 oracle 또한 switch 문처럼 코드를 짤 수 있다.
-- 나이가 28상 이상인 모든 직원의 정보를 출력
select * from emp
where eno in ( 
    select eno from(
        select eno, to_char(sysdate, 'yyyy')
        -
        case 
            when substr(jumin, 8, 1) in ('1', '2') then concat('19', substr(jumin,1,2))
            when substr(jumin, 8, 1) in ('3', '4') then concat('20', substr(jumin,1,2))
        end
        as age
        from emp
        where jumin is not null
    )   
where age >= 27);

select add_months(sysdate, 6) from dual;

'Kosta DevOps 과정 280기 > Java' 카테고리의 다른 글

NULL 처리  (0) 2024.06.21
날짜 시간 함수 -2  (0) 2024.06.21
숫자 함수  (0) 2024.06.20
문자함수  (0) 2024.06.20
commit, rollback  (0) 2024.06.20