- ** 오늘 날짜 기준으로 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;
'개발 > DB(Oracle)' 카테고리의 다른 글
3. 테이블을 수정하자 Alter Table에 대하여... (0) | 2017.06.10 |
---|---|
1. Oracle의 대표적인 데이터 타입 정리 (0) | 2017.06.10 |
1. select 문 정리 + 자주사용되는 "문자열 함수" 정리 (0) | 2017.05.06 |