- ** 오늘 날짜 기준으로 7일이 지나지 않은 게시글만 뽑아오고 싶을 때

select * from 테이블명 where 날짜컬럼 > to_char(sysdate - 7, 'YYYYMMDD')


- 날짜 함수(sysdate, now())


sysdate : 시스템의 현재 날짜를 반환함

ex) select sysdate from dual; // dual은 가상의 테이블...

mysql에서는 now()를 사용함

ex) select now() from dual;


- to_char(날짜, 출력형식)


select to_char(sysdate, 'yyyy-MM-dd am HH:mi:ss day') from dual;


// mm : 2자리 월, mi: 2자리 분, HH : 24시간제, hh : 12시간제

// day : 요일

// am : 오전/오후


- 의사컬럼(모조컬럼)


// rownum : 레코드의 출력 번호

// rowid : 레코드의 주소값

select rownum, rowid, empno, ename from emp;

- SQL의 실행순서 : from -> select -> order



- add_months(날짜, 개월수)


select ename,hiredate,add_months(hiredate,3) from emp;

// 입수일자 + 3개월 뒤의 날짜를 뽑아냄

// 입사일자를 기준으로 3개월 후의 날짜


- last_day(날짜) : 날짜가 속한 달의 마지막 날


select sysdate, last_day(sysdate) from dual; => 17/03/31


select last_day('2017-02-01') from dual; => 17/02/28


- months_between(A,B) : A-B의 개월수


select empno, ename, months_between(sysdate,hiredate) from emp;


// round(실수값, 소수이하자리수)

select empno, ename, round(months_between(sysdate,hiredate), 2) as 근무개월수 from emp order by 근무개월수 desc;


- trunc() : 버림


- ceil() : 올림


- round() : 반올림


select ceil(months_between(sysdate,hiredate)) 근무개월수 from emp;

select trunc(months_between(sysdate,hiredate)) from emp;



- to_number(문자열) : 문자열을 날짜로 변경


- to_date(문자열, '날짜출력형식') : 문자열을 날짜형식으로 변경


select '2017-03-22' + 100 from dual; => 에러 발생


select to_date('2017-03-22','YYYY-mm-dd") + 100 from dual;


select to_number('100') + 1 from dual;



+ Recent posts