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
운영게시판
최근게시물
PostgreSQL Q&A 455 게시물 읽기
No. 455
Re: 2000년일 경우 년도가 0101이 되어버립니다.
작성자
정재익
작성일
2000-01-23 21:44
조회수
14,527

time() 으로 돌아오는 값은 epoch (1970년 1월1일0초) 로 부터 현재까지 초과한 시간을 초단위로 나타낸 값이 돌아 오지요. 이것을 이용해서 그냥 pgsql 로 SQL 문을 이용하여 입력하면 될 것 같습니다.

 

개념적으로 표시하면 다음과 같은 것이 가능할 것 같습니다.

 

sys_time = time();

query_str = "insert into table_name(time_field) "

"values (datetime(sys_time))";

DoPgsqlQuery( query_str );

 

이런식으로 알고리듬이면 충분하리라 생각됩니다.

굳이 저런식으로 넣을 이유가 있는지요.

 

> 시스템의 현재 날짜를 얻어서 pgsql DB에 저장하는 루틴을 작성하던중

> 버그가 생겼습니다. 1999년까지는 문제가 없는데 2000년 부터 년도가 0100

> 으로 (2001년일 경우 0101) 되어버리는 군요. 아래의 test용 루틴을 보시고

> 해결해 주실분을 찾습니다.

>

> #include <unistd.h>

> #include <time.h>

> #include <stdlib.h>

> #include <string.h>

> #include <stdio.h>

>

> int main()

> {

>

> time_t cal_time;

> struct tm *parsed_time;

> char *pstr;

> char buf[1024];

> char *month_val[] = {

> "Jan", "Feb", "Mar", "Apr", "May", "Jun",

> "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

>

> cal_time = time(&cal_time);

>

> if (time(&cal_time) < 0)

> {

> fprintf(stderr, "Can't get current time(%s:%d)!\n", __FILE__, __

> LINE__);

> exit(/1);

> }

>

> parsed_time = localtime(&cal_time);

>

> /* DATETIME('16/Jul/1998'::datetime, '06:37:59'::time)*/

>

> sprintf(buf, "DATETIME('%d/%s/%d'::datetime,'%d:%d:%d'::time)",

> parsed_time/>tm_mday, month_val[parsed_time/>tm_mon], parsed_time/>

> tm_year,

> parsed_time/>tm_hour, parsed_time/>tm_min, parsed_time/>tm_sec);

>

> pstr = (char *)malloc(strlen(buf) + 1);

> strcpy(pstr, buf);

>

> printf("%s",pstr);

>

> return pstr;

> }

>

> 이렇게 하고 출력을 하면 다음과 같이 출력되는데

> DATETIME('23/Jan/0100'::datetime,'18:29:36'::time)

>

> 년도가 2000년으로 출력이 되질 않습니다. 많은 사이트와 게시판들을 뒤져

> 보아도 명쾌한 해답이 없군요, 고수님들 부탁드립니다.

[Top]
No.
제목
작성자
작성일
조회
465도와주세요
이하늘
2000-01-26
16061
466┕>Re: 도와주세요
정재익
2000-01-26 23:06:12
16503
463help me!! 6.5.3 make시 error를 잡을수가 없네요.
이현주
2000-01-25
14722
464┕>Re: help me!! 6.5.3 make시 error를 잡을수가 없네요.
정재익
2000-01-25 23:49:46
15348
456알짜리눅스6.0에서 pgsql은 어디에 있나요??
이영욱
2000-01-24
14126
457┕>Re: 알짜리눅스6.0에서 pgsql은 어디에 있나요??
정재익
2000-01-24 18:14:15
15062
458 ┕>Re: Re: 알짜리눅스6.0에서 pgsql은 어디에 있나요??
이영욱
2000-01-24 20:31:25
14948
459  ┕>Re: Re: Re: 알짜리눅스6.0에서 pgsql은 어디에 있나요??
정재익
2000-01-24 22:10:39
14966
461   ┕>Re: Re: Re: Re: 알짜리눅스6.0에서 pgsql은 어디에 있나요??
이영욱
2000-01-25 13:49:34
14545
462    ┕>Re: Re: Re: Re: Re: 알짜리눅스6.0에서 pgsql은 어디에 있나요??
정재익
2000-01-25 14:24:01
15293
4532000년일 경우 년도가 0101이 되어버립니다.
배용석
2000-01-23
13683
455┕>Re: 2000년일 경우 년도가 0101이 되어버립니다.
정재익
2000-01-23 21:44:14
14527
488 ┕>Re: Re: 정재익님 고맙습니다.
배용석
2000-01-29 12:16:27
14420
451아파치 인증을 위한 pgsql모둘 사용????????????
유병훈
2000-01-21
12859
452┕>Re: 아파치 인증을 위한 pgsql모둘 사용????????????
정재익
2000-01-22 00:04:24
14063
450고맙습니다
정상권
2000-01-21
13256
446패스워드 검사 에러....
정상권
2000-01-20
11902
447┕>Re: 패스워드 검사 에러....
김종혁
2000-01-20 21:11:11
12613
449 ┕>Re: Re: 패스워드 검사 에러....
정재익
2000-01-20 23:14:48
12384
448┕>Re: 패스워드 검사 에러....
정재익
2000-01-20 22:53:05
12591
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다