숭례문의 소실을 애도합니다
 


« Previous : 1 : 2 : 3 : 4 : 5 : Next »

[펌글] Informix 날짜 관련 계산 방법

요즘 인포믹스를 DB로 사용하고 있어서요. ^^;;

안까먹으려구요 데이터베이스 사랑넷에서 퍼왔습니다.
 
안녕하세요.

인포믹스에서는 날짜시간과 관련하여 3가지의 자료형을 제공합니다.

일반적을 생각하실 수 있는 date형과 datetime형

그리고 interval형을 제공합니다.

date형 : 년월일

datetime형 : 년에서 1/100000초까지 사용자가 지정하는 구간

interval형 : 기간

이들간의 관계는 다음과 같습니다.

date - date = interval

datetime - datetime = interval

date형에서 datetime형을 빼면 date형이 datetime형으로 형변환

된 후 계산이 됩니다.

이제 현재 시간보다 5분전을 구하기 위해서는

현재시간 - 5분의 기간 = 5분전 시간

CURRENT year to second - 5 units minute

= 오분전 시간(datetime year to second 형)

이 되겠죠. 5일전의 날짜를 구하는 것은

TODAY - 5 units day = 5일전 날짜(date형)

CURRENT year to day - 5 units day = 5일전 날짜(datetime year to day형)

그럼 좀더 복잡하게 5시간 50분을 빼보면

CURRENT year to second - interval (5:50) hour to minute

= 현재 시간에서 5시간 50분을 뺀 년월일 시분초(datetime year to second형)

위의 예에서 알 수 있듯이 단일 unit의 interval은

# units year|month|day|hour|minute|second|fraction

단일 unit이 아닐 경우에는

interval (...) ? to ?

형태로 사용합니다. 하지만 기간을 정할 수 없는 경우가 있는 데

한달의 길이가 월에 따라서 다르기 때문에 interval로는

1. year ~ month 사이

2. day ~ fraction 사이

의 두가지 형태로만 가능합니다. 즉

interval (2-10) month to day

는 사용할 수 없습니다. 정확히 몇일인지 구분이 되지 않기 때문이죠.

자세한 문법은 Guide to Syntax의

Segments -> Interval이라는 글자가 들어간 문단을 참조하시고

다음으로 대여일수를 계산하는 것을 보도록 하죠.

TODAY - 대여일(date형) = 대여일수(interval 형)

select *, TODAY - 대여일 from 대여장부 ....;

여기서 반환되는 대여일수의 자료형은 interval형입니다. 이것은 인포믹스에만

존재하는 자료형으로 asp등에서는 오류가 나거나 표기가 되지 않습니다.

이경우 IDS 버전이 9.x일 경우 형변환(casting)을 하여 사용합니다.

select *, (TODAY - 대여일)::varchar(10) from 대여장부 ...;

또는 숫자형으로 받기를 원할 경우

select *, (TODAY - 대여일)::varchar(10)::integer from 대여장부 ...;

형태로 사용합니다.

흠~ 설명이 충분할지 모르겠군요.

그럼 수고하세요.

데이터베이스 사랑넷 박영길님의 답변글

http://database.sarang.net/?inc=read&aid=283&criteria=informix&subcrit=&id=&limit=20&keyword=current+%2B&page=3



명언 한마디
원만한 가정은 상호간의 희생 없이는 절대 영위(營爲)되지 못한다. 이 희생은 그것을 실행하는 사람을 위대하게 하며 아름답게 한다. -앙드레 지드

Posted by 가야태자

2008/01/17 16:08 2008/01/17 16:08

Informix to_number() rutine

DROP PROCEDURE "rdd".to_number;


CREATE PROCEDURE "rdd".to_number(str VARCHAR(255)) RETURNING


DECIMAL(32,0);


return str;


END PROCEDURE;


select to_number(substr(max(coll_no), 5, 10))+1
from col_master where substr(coll_no, 1, 4)='NADL'



명언 한마디
부드러움과 친절은 나약함과 절망의 징후들이 아니고, 힘과 결단력의 표현이다. -칼릴 지브란

Posted by 가야태자

2007/12/03 16:44 2007/12/03 16:44

informix 설치 관련 참고

informix 설치 관련 참고 | TIP
2006.08.16 17:36

설치 방법은 아래 내용과 같이 첨부해 드리는 install 관련 파일을 참조 하시기 바랍니다.

(informix 10.0을 기준으로 한 것입니다.)

 

1. CD를 넣거나 압축된 화일을 푼다.

cpi,CPIO,CPI로 되어 있는 경우

# cpio -cumvdB < ids.cpi 

   tar로 압축이 된경우는 tar(tar -xvf ids.tar)로 푼다

 

2. installserver 라는 화일을 찾는다.

다음, root 계정으로

# installserver -gui

또는

# installserver 를 실행한다.

 

3. 설치에 관한 창이 뜨면 일단 쭉쭉 다음을 클릭한다. 이때 설치 디렉토리만 신경써서 잘 설정해준다.

(/usr/informix가 젤 편하다. 나중에 알게 됨)

 

4. 설치가 끝나면 인포믹스 계정과 그룹을 만든다.

 

5. 인포믹스 계정으로 로그인한다.

# su - informix

 

6. 사용하는 Shell환경에 따라 .profile 또는 .cshrc , .bashrc 를 편집한다.

 (informix의 설치 경로는 default /usr/informix이지만 상황에 맞게 조정을 한다)

 

export INFORMIXDIR=/usr/informix

export INFORMIXSERVER=ids10

export PATH=$INFORMIXDIR/bin:$PATH

export LD_LIBRARY_PATH=$INFORMIXDIR/lib

 

7. /usr/informix/ 디렉토리 밑에 DBS라는 디렉토리를 만든다.

# mkdir /usr/informix/DBS

 

8. DBS 디렉토리 밑에 화일을 하나 만들고 권한을 660으로 바꾼다.

# touch /usr/informix/DBS/root_chk

# chmod 660 /usr/informix/DBS/root_chk

 

9. /usr/informix/etc 디렉토리 밑에 onconfig.std sqlhosts.std (또는 sqlhosts.demo) onconfig , sqlhosts copy한다.

# cp /usr/informix/etc/onconfig.std /usr/informix/etc/onconfig

# cp /usr/informix/etc/sqlhosts.std /usr/informix/etc/sqlhosts

 

10. /usr/informix/onconfig 를 편집한다.

 

ROOTPATH /usr/informix/DBS/root_chk

TAPEDEV /dev/null

LTAPEDEV /dev/null

DBSERVERNAME ids10

 

로 변경한 후 저장하고 나온다.

 

11. /usr/informix/sqlhosts 를 편집한다.

 

이미 두개의 설정이 되어있는 데 앞에 #으로 막는다. 그리고 아래의 설정을 추가한다.

 

ids10     onsoctcp 해당 IP sqlexec

 

저장하고 나온다.

 

12. root 계정으로  /etc/services 화일에 포트를 추가한다.

sqlexec   1526/tcp

 

저장하고 나온다.

 

13. 다시 인포믹스 계정으로 로그인한 후 초기화한다.

 

# oninit -ivy

 

를 실행하면 뭔가 쭈룩쭈룩 올라가며 마지막에 onmode 5로 떨어진다.

 

이때 다른 창에 인포믹스로 로그인한 후 # onstat -mr 1 을 실행해서 설치 상태를 확인한다.

sysmaster

sysutils

sysusers 까지 build가 되었다면  설치 성공!!

 

14. 만약 설치가 이렇게 해도 안되는 경우는 release note machine note OS parameter setting을 확인한다.

  ($INFORMIXDIR/release/en_us/0333)

 

제품을 다운 받고 싶으시다면 아래 URL에 접속해 보세요.

http://www-306.ibm.com/software/data/informix/downloads.html

 

 

 

 

출처 : http://cafe.naver.com/informix.cafe

 



명언 한마디
세상은 늘 변하기 때문에 흘러간 것들은 보내고 새로운 것을 맞이하는 건강한 태도가 필요하다. -앤드류 매튜스

Posted by 가야태자

2007/11/22 23:15 2007/11/22 23:15

« Previous : 1 : 2 : 3 : 4 : 5 : Next »

블로그 이미지

이곳은 가야태자의 일상생활, 사진, 리눅스, 자유, 개발언어, 데이타베이스 등에 대해서 이야기 하는 공간입니다.

- 가야태자

Calendar

«   2008/08   »
          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            

Site Stats

Total hits:
151895
Today:
21
Yesterday:
168