esql/c 프로그래밍을 하고 있는데요
DB에서 datetime year to second 타입의 값을 가져와서
C의 time_t 변수에 집어 넣으려고 합니다.
어떻게 하면 되나요?
반대로 time_t 값을 datetime 변수에 집어 넣으려면
어떻게 해야 하나요?
고수님들의 답변을 부탁드립니다.
다음 이동환님 글이 도움이 될것 같군요.
http://tilldawn.co.kr/servlet/HeormBbsInqr?code=QB&no=213.50000000000000000000&page=1&sch=time_t
current함수를 쓰시는 것이 맞습니다.
current함수를 쓰신다면
반듯이 datatype을 datetime으로 쓰셔야 합니다.
단순히 시스템 시간만 넣겠다면 다음과 같이 만드세요
create table tab3 ( a int , b datetime hour to second);
insert into tab3 values (0,current);
select * from tab3;
엔진 내부적으로 datetime은 int형으로 저장관리되며 프로그램에서 비교 혹 수식 연산자를 이용하시려면 char형이로 비교하시려면 to_char로 바꾸어야 합니다.
이상입니다.
직접 변환은 모르겠고, 일단 스트링으로 변환한 후에 하시면 됩니다. 다음 순서대로 함수를 이용해 보세요.
dttofmtasc()나 dtcvfmtasc() 사용법은 인포믹스 매뉴얼 찾아 보시고 나머지 함수는 모두 아실거고...
Informix -> C:
dttofmtasc() -> strptime() -> mktime()
C -> Informix:
localtime() -> strftime() -> dtcvfmtasc()