---- 날짜연산
select sysdate, sysdate + 1, sysdate + 1/24, sysdate + 1/(24*60*60)
from dual;

select '2007-02-14' - '2007-02-12' -- 이러한 형식은 문자로 인식하기 때문에 실행이 안된다.
from dual;
select to_date('2007-02-14','yyyy-mm-dd') -  -- to_date('입력값','x') :  해당값은 X라는 형식의 날짜라고 표시한다.
    to_date('2007-02-12','yyyy-mm-dd')
from dual;
---- months_between 함수 :
select months_between('2007-2-12','2007-01-01') -- 문자 형식이라도 잠정적으로 날짜로 인식한다.
    -- months_between(a,b): a와b의 차이를 달(month)수로 나타낸다.
from dual;

---- add_months 함수
select add_months(sysdate, 1) -- add_months(a,b) : a날짜로부터 b달만큼 더한다.
from dual;
----------- 예제문제 : 지금부터 1달 2일 3시간 4분 5초후는?
select sysdate, add_months(sysdate,1) + 2 + 3/24 + 5/(24*60*60)
from dual;  -- oracle 8i 까지 써왔던 함수.
----------- 예제문제 : 지금부터 1년 1달 2일 3시간 4분 5초후는?
select sysdate, sysdate + to_yminterval('01-01') + to_dsinterval('002 03:04:05')
from dual; -- oracle 9i 부터 나온 시간계산함수

---- next_day 함수 : next_day(날짜,'요일') - 해당날짜에서 가장빨리 돌아오는 요일을 나타낸다.
select next_day(sysdate,'금'),   -- 리눅스,유닉스 기반에서는 요일이 한글이 아닌 영어라 안될수 있다.
       next_day(sysdate,'월'),
       next_day(sysdate,'토요일'),
       next_day(sysdate,'화요일')
from dual;

select to_char(sysdate,'day'), to_char(sysdate,'dy') -- 해당함수는 날짜에대한 요일을 알려준다.
from dual;  -- 유닉스나 리눅스는 한글이 아닌 영어로 나타난다.

select to_char(sysdate, 'd')
from dual;
------ 1, 2, 3, 4, 5, 6, 7
------ 월 화 수 목 금 토 일 로 매핑이 된다.

---- 미리배워보는 (case, when, then, end) 문
select case 3-1                       -- oracle 8i부터 생성된 함수
    when 1 then '3-1=1 입니다.'
    when 2 then '3-2=1 입니다.'
    else '3-1=몰라요'
    end
from dual;

select case
    when 3 > 4 then '3 > 4 입니다.'
    when 3 > 2 then '3 > 2 입니다.'
    else '몰라요'
    end
from dual;

select decode(3-1, 1, '3-1=1 ok', 2, '3-1=2 ok', '3-1= I don`t know')
from dual;   -- 오라클 8i 이전에 사용하던 함수
----------------------------------------------------------------------------------------
---- case~ 함수
select case to_char(sysdate, 'd')
    when '1' then '일요일'
    when '2' then '월요일'
    when '3' then '화요일'
    when '4' then '수요일'
    when '5' then '목요일'
    when '6' then '금요일'
    when '7' then '토요일'
    end "오늘의 요일명"
from dual;

select decode(to_char(sysdate, 'd')
           ,'1','일요일'
           ,'2','월요일'
           ,'3','화요일'
           ,'4','수요일'
           ,'5','목요일'
           ,'6','금요일'
           ,'7','토요일') "오늘의 요일명"
from dual;

---- last_day 함수 : 해당 날짜에 맨 마지막 날을 표시한다.
select last_day(sysdate)
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle rank 함수  (0) 2009.03.13
Oracle 변환형 함수  (0) 2009.03.13
Oracle 숫자형 함수 - log, sign, chr  (0) 2009.03.13
Oracle 숫자형 함수 - mod, floor, power, sqrt  (0) 2009.03.13
Oracle 숫자형 함수 - round, trunc  (0) 2009.03.13
Posted by Duritz

---- log 함수 : 상용로그 값을 구한다.
select log(10,100)
from dual;

---- sign 함수 : 결과물이 음수이면(-)로 양수면(+)로 표시한다.
select sign(2-5), sign(2-2), sign(5-2)
from dual;
------ 참고
select sin(90), cos(90), tan(90), asin(180), acos(180), atan(180)
from dual;

----chr 함수
select ascii('A'), chr(65) -- chr(숫자) : 해당숫자를 아스키값으로 인식하여 그값에 대한 문자를 출력
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle 변환형 함수  (0) 2009.03.13
Oracle 날짜형 함수  (0) 2009.03.13
Oracle 숫자형 함수 - mod, floor, power, sqrt  (0) 2009.03.13
Oracle 숫자형 함수 - round, trunc  (0) 2009.03.13
Oracle 문자형 함수 - reverse  (0) 2009.03.13
Posted by Duritz

---- mod, floor 함수
select 5/2, mod(5,2),
    floor(5/2),
    ceil(5/2)
from dual;

---- power 함수 : 거듭제곱값을 구한다.
select power(2,5)
from dual;

---- sqrt 함수 : 제곱근을 구한다. (루트)
select sqrt(5)
from dual;

Posted by Duritz

---- round, trunc 함수
select 45.195, round(45.195), round(45.195,0),
    round(45.195,1), round(45.195,2), round(45.195,-1),
    round(45.195,-2), round(54.195,-2)
    -- round(숫자, x) : 해당숫자의 X자리까지만 나타낸다. 사라지는 부분은 반올림되어진다.
from dual;

select 45.195, trunc(45.195), trunc(45.195,0),
    trunc(45.195,1), trunc(45.195,2), trunc(45.195,-1),
    trunc(45.195,-2), trunc(54.195,-2)
    -- trunc(숫자, x) : 해당숫자의 X자리까지만 나타낸다. 사라지는 부분은 절삭한다.
from dual;

Posted by Duritz
---- reverse 함수
select 'oracle', reverse('oracle') -- 해당 문자를 거꾸로 출력한다.
from dual;


Posted by Duritz

---- translate, replace 함수
select translate('oracle','abcdefghijklnmopqrstuvwxyz','ABCDEFGHIJKLNMOPQRSTUVWXYZ')
    -- translate('문장', 'x', 'y') : 문장에서 X라는 문자를 Y로 바꾼다. 단, X와Y는 1:1 매핑이 되야한다.
from dual;

select translate('일금 2560 만원','0123456789','영일이삼사오육칠팔구')
from dual;

select 'oracle orahome', replace('oracle orahome','ora','오라')
    -- replace('문장','x','y') : 문장에서 X라는 문자를 검색하여 Y로 변경한다.
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle 숫자형 함수 - round, trunc  (0) 2009.03.13
Oracle 문자형 함수 - reverse  (0) 2009.03.13
Oracle 문자형 함수 - ltrim, rtrim  (0) 2009.03.13
Oracle 문자형 함수 - lpad, rpad  (0) 2009.03.13
Oracle 문자형 함수 - instr  (0) 2009.03.13
Posted by Duritz

---- ltrim, rtlim 함수 : 왼쪽이나 오른쪽에 공백이 존재할때 공백을 제거하기위해 많이 사용
select 'oraoracle server',
    ltrim('oraoracle server','ora'),
    -- ltrim('문장','지울문자') : 문장에서 왼쪽부터 지정한 지울문자의 순서에 상관없이
    --                            연속적으로 포함되면를 연속되는것이 끝날때까지 삭제해서 출력한다.
      rtrim('oraoracle serverver','ver')
      -- rtrim('문장','지울문자') : 오른쪽 부터 삭제
from dual;

select 'oraoracle server',
    ltrim('orroaracle server','ora'),
      rtrim('oraoracle serverveer','ver')
from dual;

select 'oracle' || '                 sever',
    'oracle' || ltrim('                 sever'), -- 지울문자를 쓰지 않으면 해당 공백을 지우게 된다.
    'oracle                 ' || 'server',
    rtrim('oracle                 ') || 'server'
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - reverse  (0) 2009.03.13
Oracle 문자형 함수 - translate, replace  (0) 2009.03.13
Oracle 문자형 함수 - lpad, rpad  (0) 2009.03.13
Oracle 문자형 함수 - instr  (0) 2009.03.13
Oracle 문자형 함수 - length  (0) 2009.03.13
Posted by Duritz

---- lpad, rpad 함수
select 'oracle',
    lpad('oracle', 10, '*'),
    -- lpad('문자', x, '특수문자') : 문자를 X수만큼 늘리되 모자라는 부분은 왼쪽부터 특문으로 체운다.
    rpad('oracle', 10, '*')
    -- rpad('문자', x, '특수문자') : 모자라는 부분을 오른쪽부터 체운다.
from dual;

select 'oracle',
    lpad('오라클서버', 14, '♣'), -- byte로 적용되기 때문에 한글은 1글자당 2byte가 된다.
    rpad('오라클서버', 14, '♣')  -- 한글자음으로 만드는 특수문자는 한글처럼 2byte가 된다.
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - translate, replace  (0) 2009.03.13
Oracle 문자형 함수 - ltrim, rtrim  (0) 2009.03.13
Oracle 문자형 함수 - instr  (0) 2009.03.13
Oracle 문자형 함수 - length  (0) 2009.03.13
Oracle 문자형 함수 - substr  (0) 2009.03.13
Posted by Duritz

---- instr 함수
select instr('oracle server orahome', 'ora', 1, 1)
    -- instr('문장', '찾을문자', x,y) : 찾을문자가 문장의 x번째로 시작하는 문자부터
    --                                           y번째로 나오는 찾을문자를 검색
from dual;

select instr('oracle server orahome', 'ora', 1, 2)
from dual;

select instr('oracle server orahome', 'ora', 2, 1)
from dual;

select instr('oracle server orahome', 'ora', 2) -- 출발지점을 생략하면 1과 같다.
from dual;
select instr('oracle server orahome', 'ora', 1, 2) -- 바로위 문장은 지금 문장과 같다.
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - ltrim, rtrim  (0) 2009.03.13
Oracle 문자형 함수 - lpad, rpad  (0) 2009.03.13
Oracle 문자형 함수 - length  (0) 2009.03.13
Oracle 문자형 함수 - substr  (0) 2009.03.13
Oracle 문자형 함수 - Concat  (0) 2009.03.13
Posted by Duritz

---- length 함수
select length('oracle'), length('오라클') -- length는 문자수의 길이를 나타낸다.
from dual;

select lengthb('oracle'), lengthb('오라클') -- length는 byte수를 나타낸다.
from dual;

'Program... > Oracle' 카테고리의 다른 글

Oracle 문자형 함수 - lpad, rpad  (0) 2009.03.13
Oracle 문자형 함수 - instr  (0) 2009.03.13
Oracle 문자형 함수 - substr  (0) 2009.03.13
Oracle 문자형 함수 - Concat  (0) 2009.03.13
Oracle Order By 절  (0) 2009.03.13
Posted by Duritz

공지사항

Yesterday
Today
Total
12-03 23:34

달력

 « |  » 2024.12
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