database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
ㆍInformix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Informix Q&A 283 게시물 읽기
No. 283
Re: date 연산이 어떻게 되나요?
작성자
박영길
작성일
2000-09-14 21:51
조회수
14,431

안녕하세요.

 

인포믹스에서는 날짜시간과 관련하여 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 대여장부 ...;

 

형태로 사용합니다.

 

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

 

그럼 수고하세요.

 

::김연우 님께서 쓰시길::

 

> 안녕하세요

> 인포믹스를 처음 사용하는 초보입니다.

>

> 혹시 여기에 날짜 연산에 대한 것 있나요?

> 예를 들어서 현재시간 보다 5분전 시간을 구하는 것은 어떻게 하나요?

>

> 궁금합니다..

>

> 도와주세용..

>

> 그럼..

[Top]
No.
제목
작성자
작성일
조회
281PHP에서 informix stored procedure사용?
정인규
2000-09-14
6366
295┕>Re: PHP에서 informix stored procedure사용?
까마구
2000-09-28 06:51:50
7214
280문자열 자를때요..
하태현
2000-09-08
6642
279linux java jdbc lock에 관하여 ....
드림
2000-09-05
6553
278date 연산이 어떻게 되나요?
김연우
2000-08-30
7528
283┕>Re: date 연산이 어떻게 되나요?
박영길
2000-09-14 21:51:04
14431
274NT 에서 informix가 호환이 되나요??
나정원
2000-08-29
6344
275┕>Re: NT 에서 informix가 호환이 되나요??
박영길
2000-08-30 10:04:58
6855
273INFORMIX에는 문자열 함수가 없나요?
이승근
2000-08-29
6815
276┕>Re: INFORMIX에는 문자열 함수가 없나요?
박영길
2000-08-30 10:25:11
9283
270다시 질문..솔라리스7 + 인포믹스 + PHP
정인규
2000-08-28
6628
272┕>Re: 다시 질문..솔라리스7 + 인포믹스 + PHP
박영길
2000-08-29 09:54:09
9320
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다