블로그   |    태그로그   |    방명록
민준이
전체 (120)
공부 (49)
포트폴리오 (70)
공지사항 (0)
자유게시판 (1)
«   2009/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
월별보기
'2009/03'에 해당되는 글 1건
오라클 날짜 형식 바꾸기
Category : 공부/ORACLE Date : 2009/03/09 16:51
2009/03/09 16:51 2009/03/09 16:51

기본날짜형식  'DD-MON-YY'

단일 인용부호('')사용 필요

 

DBMS에서 현재날짜중 년도와 월만 가져오기

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS APPLDAT,

             TO_CHAR(SYSDATE, 'YYYYMM') AS YRMM
FROM dual


DBMS에서 현재날짜중 년도와 월만 가져오기

SELECT to_char(system, 'yyyymm')

FROM daul


DBMS에서 현재날짜 가져오기

SELECT system

FROM daul


오라클 날짜데이터에서 요일가져오기

select  decode(to_char(to_date('20040405','yyyymmdd'),'d'),
              '1','일요일',
              '2','월요일',
              '3','화요일',
              '4','수요일',
              '5','목요일',
              '6','금요일','토요일') "요일"
from   dual;


오라클에서 날짜데이터 형식 변환

19990212 => 1999/02/12

select to_char(to_date('19990212', 'YYYYMMDD'), 'YYYY/MM/DD') from TEST;

# 날짜계산
select months_between(sysdate,to_date(2009-12-22','yyyy-mm-dd'))
-- months_between(A,B) = A-B/30
--select add_months(sysdate,4) -- 특정일의 달수 더한 날
--select next_day(sysdate,'friday') -- 특정일의 다음주 요일
--select last_day(sysdate) -- 특정일의 해당 월의 마지막 날
--select round(sysdate,'dd') -- 특정일의 반올림(오후면 다음날..)
--select trunc(sysdate,'ww') -- 특정일의 전주 토요일(해당 전주의 마지막 날)에해당하는 날짜
--select trunc(sysdate,'D') -- 특정일의 주 일요일(해당 주의 첫째 날)에해당하는 날짜

from dual
 

/* 어제 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE-1) AND TRUNC(SYSDATE-1)+0.99999421
/* 오늘 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + 0.99999421
/* 내일 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1) AND TRUNC(SYSDATE+1)+0.99999421
/* 금주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'D')
                        AND TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'D')+6.99999421
/* 차주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+8)-TO_CHAR(SYSDATE, 'D')
                        AND TRUNC(TRUNC(SYSDATE)+14.99999421)-TO_CHAR(SYSDATE, 'D')
/* 금월 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'DD')
                        AND TRUNC(LAST_DAY(SYSDATE))+0.99999421
/* 전월 */ 날짜칼럼 BETWEEN TRUNC(ADD_MONTHS(SYSDATE,-1)+1)-TO_CHAR(SYSDATE,'DD')
                        AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE, -1)))+0.99999421
/* 차월 */ 날짜칼럼 BETWEEN ADD_MONTHS(TRUNC(SYSDATE),1)-TO_CHAR(SYSDATE,'DD')+1
                        AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE),1)+0.99999421)

 

 

# 특정일 까지의 간격을 년, 개월, 일로 표현하기

SELECT
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD'))/12) "년",
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD')) -
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD'))/12) * 12) "개월",
TRUNC((MONTHS_BETWEEN(SYSDATE,TO_DATE(?', 'YYYYMMDD')) -
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD')))) * 30.5) "일"
FROM DUAL;

 


# 당월의 주차 구하기..
SELECT
?' as "날짜"
, ceil((to_number(substrb(?', -2, 2)) + 7 - to_number(TO_CHAR(TO_DATE(?','YYYYMMDD'),'D')))/7) as "월별 주차"
from dual;


 

# 시간 계산 SQL
SELECT TRUNC(TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS')) || ' day ' ||
       TRUNC(MOD((TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS')),1)*24) || ' hour ' ||
       TRUNC(MOD((TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS'))*24,1)*60) || ' minute ' ||
       TRUNC(ROUND(MOD((TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS'))*24*60,1)*60)) || ' sec '
       " Time Interval "
FROM DUAL ;

,
상위로
엮인글 쓰기 0 | 덧글 쓰기 0 | 목록 열기
Creative Commons License 블로그 내에 모든 저작물은 크리에이티브 커먼즈코리아 저작자표시 - 비영리 - 변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
최근 올라온 글
블로그 최근 덧글
최근 엮인글
Viagra.
 Viagra attorneys.
Phentermine 37.5 mg online...
 Cheapest phentermine online.
Buy cheap tramadol mg table...
 Cheap tramadol prescription...
How much tickets are sold f...
 Air flight tickets.
Valtrex.
 Valtrex medication.
즐겨찾기
Today : 18
Yesterday : 57
Total : 13778
Powered by Textcube 1.7.1 : Risoluto
Skin by mulder21c
RSS 주소보기 E-Mail 보내기