이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다배트맨 토토 PostgreSQL : 문서 : 17 : 34.6. PGTYPES 라이브러리버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

33.6. PGTYPES 라이브러리

PGTYPES 라이브러리지도PostgreSQLC 프로그램에서 사용할 수있는 C 등가물에 대한 데이터베이스 유형. 또한 C 내에서 이러한 유형을 사용하여 기본 계산을 수행하는 기능도 제공합니다.PostgreSQL서버. 다음 예를 참조하십시오.

Exec SQL 시작 선언 섹션;

33.6.1. 캐릭터 문자열

와 같은 일부 기능pgtypesnumeric_to_asc새로 할당 된 문자열에 포인터를 반환합니다. 이 결과는로 해제되어야합니다.pgtypeschar_free대신무료. (이것은 메모리 할당과 릴리스가 때때로 같은 라이브러리에서 수행 해야하는 Windows에서만 중요합니다.)

33.6.2. 숫자 유형

숫자 유형은 임의의 정밀도로 계산을 제공하는 것을 제공합니다. 보다PostgreSQL : 문서 : 9.5 : 토토 베이 유형동등한 유형의 경우PostgreSQL서버. 임의의 정밀성으로 인해이 변수는 동적으로 확장하고 축소 할 수 있어야합니다.pgtypesnumeric_newandpgtypesnumeric_free함수. 유사하지만 정밀도가 제한된 소수점 유형은 스택과 힙에 생성 될 수 있습니다.

다음 함수는 숫자 유형으로 작동하는 데 사용될 수 있습니다.

pgtypesnumeric_new

새로 할당 된 숫자 변수에 대한 포인터를 요청합니다.

숫자 *pgtypesnumeric_new (void);
pgtypesnumeric_free

숫자 유형을 무료로 해제하고 모든 메모리를 해제하십시오.

void pgtypesnumeric_free (숫자 *var);
PGTYPESNUMERIC_FROM_ASC

문자열 표기법에서 숫자 유형을 구문 분석합니다.

숫자 *pgtypesnumeric_from_asc (char *str, char ** endptr);

유효한 형식은 예를 들어 :-2,.794,+3.44,592.49E07또는-32.84E-4. 값을 성공적으로 구문 분석 할 수 있으면 유효한 포인터가 반환됩니다.*endptr. 안전하게 설정할 수 있습니다endptrto null.

pgtypesnumeric_to_asc

|Malloc12757_12820Num.

char *pgtypesnumeric_to_asc (numeric *num, int dscale);

숫자 값은로 인쇄됩니다.dscale필요한 경우 반올림이 적용되는 소수 숫자. 결과는로 해제되어야합니다.pgtypeschar_free ().

pgtypesnumeric_add

세 번째 숫자 변수에 두 개의 숫자 스포츠 토토 추가합니다.

int pgtypesnumeric_add (숫자 *var1, 숫자 *var2, 숫자 *결과);

함수가 스포츠 토토 추가합니다var1andvar2결과 변수로결과. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.

pgtypesnumeric_sub

두 개의 숫자 변수를 빼고 결과를 세 번째 변수로 반환합니다.

int pgtypesnumeric_sub (숫자 *var1, 숫자 *var2, 숫자 *결과);

함수가 스포츠 토토 빼냅니다var2변수에서var1. 작업 결과는 변수에 저장됩니다결과. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.

pgtypesnumeric_mul

두 개의 숫자 변수를 곱하고 결과를 세 번째 변수로 반환합니다.

int pgtypesnumeric_mul (숫자 *var1, 숫자 *var2, 숫자 *결과);

함수는 스포츠 토토 곱합니다var1andvar2. 작업 결과는 변수에 저장됩니다결과. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.

pgtypesnumeric_div

두 개의 숫자 변수를 나누고 결과를 세 번째 변수로 반환합니다.

int pgtypesnumeric_div (숫자 *var1, 숫자 *var2, 숫자 *결과);

함수는 스포츠 토토 나눕니다var1byvar2. 작업 결과는 변수에 저장됩니다결과. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.

pgtypesnumeric_cmp

두 숫자 변수 비교.

int pgtypesnumeric_cmp (숫자 *var1, 숫자 *var2)

이 기능은 두 가지 숫자 스포츠 토토 비교합니다. 오류의 경우int_max반환됩니다. 성공시 함수는 세 가지 가능한 결과 중 하나를 반환합니다.

  • 1, ifvar1var2

  • -1, ifvar1보다 작습니다var2

  • 0, ifvar1andvar2동일합니다

pgtypesnumeric_from_int

int 스포츠 토토 숫자 변수로 변환합니다.

int pgtypesnumeric_from_int (서명 된 int_val, 숫자 *var);

이 함수는 유형의 스포츠 토토 수락하고 숫자 변수에 저장var. 성공시, 실패의 경우 0이 반환되고 -1이 반환됩니다.

pgtypesnumeric_from_long

긴 int 스포츠 토토 숫자 변수로 변환합니다.

int pgtypesnumeric_from_long (서명 long_val, 숫자 *var);

이 함수는 유형의 스포츠 토토 서명 한 int의 스포츠 토토 수락하고 숫자 변수에 저장var. 성공시, 실패의 경우 0이 반환되고 -1이 반환됩니다.

pgtypesnumeric_copy

하나의 숫자 스포츠 토토 다른 숫자 변수로 복사하십시오.

int pgtypesnumeric_copy (Numeric *SRC, Numeric *DST);

이 함수는 변수의 값에 대해 복사합니다.SRC스포츠 토토 가리키는dst오류가 발생하면 성공시 0을 반환하고 -1을 반환합니다.

pgtypesnumeric_from_double

유형의 스포츠 토토 숫자로 변환합니다.

int pgtypesnumeric_from_double (double d, numeric *dst);

이 함수는 유형의 이중 변수를 받아들이고 결과를 변수에 저장합니다.dst오류가 발생하면 성공시 0을 반환하고 -1을 반환합니다.

pgtypesnumeric_to_double

유형 숫자의 스포츠 토토 이중으로 변환합니다.

int pgtypesnumeric_to_double (숫자 *nv, double *dp)

함수는 숫자 값을 변수에서 변환합니다.NV이중 스포츠 토토 가리 킵니다.DP오류가 오류가 발생하면 오류가 발생하면 0을 반환하고 -1을 반환합니다.errno로 설정됩니다pgtypes_num_overflow17999_18015

pgtypesnumeric_to_int

유형 숫자의 스포츠 토토 int.

int pgtypesnumeric_to_int (숫자 *nv, int *ip);

함수는 숫자 값을 변수에서 숫자로 변환합니다.NV정수 스포츠 토토 가리키는IP오류가 오류가 발생하면 오류가 발생하면 0을 반환하고 -1을 반환합니다.errno로 설정됩니다pgtypes_num_overflow추가로.

pgtypesnumeric_to_long

유형 숫자의 스포츠 토토 길로 변환합니다.

int pgtypesnumeric_to_long (숫자 *nv, long *lp);

함수는 숫자 값을 변수에서 숫자로 변환합니다.NV긴 정수 스포츠 토토 가리 킵니다.LP오류가 오류가 발생하면 오류가 발생하면 0을 반환하고 -1을 반환합니다.errno로 설정됩니다pgtypes_num_overflow추가로.

pgtypesnumeric_to_decimal

유형 숫자의 스포츠 토토 10 진수로 변환합니다.

int pgtypesnumeric_to_decimal (Numeric *Src, Decimal *dst);

함수는 숫자 값을 변수에서 숫자로 변환합니다.SRC소수 스포츠 토토 가리 킵니다.dst오류가 오류가 발생하면 오류가 발생하면 0을 반환하고 -1을 반환합니다.errnopgtypes_num_overflow추가로.

pgtypesnumeric_from_decimal

십진수의 스포츠 토토 숫자로 변환합니다.

int pgtypesnumeric_from_decimal (Decimal *Src, Numeric *dst);

함수는 소수점 값을 변수에서 변환합니다.SRC숫자 스포츠 토토 가리 킵니다.dst오류가 발생하면 성공시 0을, -1을 반환합니다.

33.6.3. 날짜 유형

C의 날짜 유형을 사용하면 프로그램이 SQL 유형 날짜의 데이터를 처리 할 수 ​​있습니다. 보다PostgreSQL : 문서 : 9.5 : 날짜/스포츠 토토 유형동등한 유형의 경우PostgreSQLServer.

다음 함수는 날짜 유형과 함께 작동하는 데 사용할 수 있습니다.

pgtypesdate_from_timestamp

타임 스탬프에서 날짜 부분을 추출합니다.

날짜 pgtypesdate_from_timestamp (timestamp dt);

함수는 타임 스탬프를 유일한 인수로 수신 하고이 타임 스탬프에서 추출 된 날짜 부분을 반환합니다.

pgtypesdate_from_asc

텍스트 표현의 날짜를 구문 분석하십시오.

날짜 pgtypesdate_from_asc (char *str, char ** endptr);

함수는 c char* string을받습니다str그리고 C char* string에 대한 포인터endptr. 현재 ECPG는 항상 완전한 문자열을 구문 분석하므로 현재 첫 번째 유효하지 않은 문자의 주소를 저장하는 것이 지원되지 않습니다.*endptr. 안전하게 설정할 수 있습니다endptrto null.

이 함수는 항상 MDY 형식 날짜를 가정하고 현재 ECPG 내에서이를 변경할 변수는 없습니다.

표 33-2허용 된 입력 형식을 보여줍니다.

표 33-2. 유효한 입력 형식pgtypesdate_from_asc

입력 결과
1999 년 1 월 8 일 1999 년 1 월 8 일
1999-01-08 1999 년 1 월 8 일
1/8/1999 1999 년 1 월 8 일
1/18/1999 1999 년 1 월 18 일
01/02/03 2003 년 2 월 1 일
1999-Jan-08 1999 년 1 월 8 일
1 월 -08-1999 1999 년 1 월 8 일
08-Jan-1999 1999 년 1 월 8 일
99-Jan-08 1999 년 1 월 8 일
08-Jan-99 1999 년 1 월 8 일
08-Jan-06 2006 년 1 월 8 일
1 월 -08-99 1999 년 1 월 8 일
19990108 ISO 8601; 1999 년 1 월 8 일
990108 ISO 8601; 1999 년 1 월 8 일
1999.008 연도 및 연도
J2451187 Julian Day
BC 99 년 1 월 8 일 일반 시대 전 99 학년
pgtypesdate_to_asc

날짜 변수의 텍스트 표현을 반환합니다.

char *pgtypesdate_to_asc (날짜 ddate);

함수는 날짜를받습니다ddate유일한 매개 변수로. 양식의 날짜를 출력합니다1999-01-18, 즉yyyy-mm-dd형식. 결과는로 해제되어야합니다.pgtypeschar_free ().

pgtypesdate_julmdy

유형 날짜 변수에서 하루, 달 및 연도의 값을 추출합니다.

void pgtypesdate_julmdy (날짜 d, int *mdy);

함수는 날짜를받습니다d그리고 3 개의 정수 값 배열에 대한 포인터mdy. 변수 이름은 순차 순서를 나타냅니다.mdy [0]달의 수를 포함하도록 설정됩니다.mdy [1]오늘의 가치로 설정되고mdy [2]연도가 포함됩니다.

pgtypesdate_mdyjul

날짜, 달 및 날짜를 ​​지정하는 3 개의 정수 배열에서 날짜 값을 만듭니다.

void pgtypesdate_mdyjul (int *mdy, date *jdate);

함수는 3 정수의 배열을 수신합니다 (mdy) 첫 번째 인수로서 두 번째 인수로서 작업 결과를 유지 해야하는 유형 날짜 변수에 대한 포인터.

pgtypesdate_dayofweek

날짜 값에 대한 요일을 나타내는 숫자를 반환합니다.

int pgtypesdate_dayofweek (날짜 d);

함수는 날짜 스포츠 토토받습니다d이 날짜의 요일을 나타내는 유일한 주장으로 반환합니다.

  • 0- 일요일

  • 1- 월요일

  • 2- 화요일

  • 3- 수요일

  • 4- 목요일

  • 5- 금요일

  • 6- 토요일

pgtypesdate_today

현재 날짜 받기.

void pgtypesdate_today (date *d);

함수는 날짜 변수에 대한 포인터를 수신합니다 (d) 현재 날짜로 설정된 것입니다.

pgtypesdate_fmt_asc

형식 마스크를 사용하여 유형 날짜 스포츠 토토 텍스트 표현으로 변환합니다.

int pgtypesdate_fmt_asc (날짜 ddate, char *fmtstring, char *outbuf);

함수는 변환 날짜를 수신합니다 (ddate), 형식 마스크 (fmtstring) 및 날짜 (의 텍스트 표현을 보유 할 문자열outbuf).

성공시 0이 반환되고 오류가 발생하면 음수 값이 반환됩니다.

다음 리터럴은 사용할 수있는 필드 지정자입니다.

  • DD- 매월의 날 수.

  • mm- 올해의 달 수.

  • yy- 두 자리 수의 올해의 수.

  • yyyy- 4 자리 수의 올해의 수.

  • DDD- 오늘의 이름 (약어).

  • mmm- 이달의 이름 (약어).

다른 모든 문자는 출력 문자열에 1 : 1을 복사합니다.

표 33-3몇 가지 가능한 형식을 나타냅니다. 이 기능을 사용하는 방법에 대한 아이디어가 제공됩니다.

표 33-3. 유효한 입력 형식pgtypesdate_fmt_asc

형식 결과
mmddyy 112359
ddmmyy 231159
yymmdd 591123
yy/mm/dd 59/11/23
YY MM DD 59 11 23
yy.mm.dd 59.11.23
.mm.yyyy.dd. .11.1959.23.
MMM. DD, yyyy 11 월. 23, 1959
mmm dd yyyy 1959 년 11 월 23 일
yyyy dd mm 1959 23 11
ddd, mmm. DD, yyyy Mon, 1959 년 11 월 23 일
(ddd) mmm. DD, yyyy (월) 1959 년 11 월 23 일
pgtypesdate_defmt_asc

형식 마스크를 사용하여 C를 변환합니다char*유형 날짜 값으로 문자열.

int pgtypesdate_defmt_asc (date *d, char *fmt, char *str);

함수는 작동 결과를 유지 해야하는 날짜 값에 대한 포인터를 수신합니다 (d), 날짜를 구문 분석하는 데 사용할 형식 마스크 (FMT) 및 날짜 (의 텍스트 표현을 포함하는 C char* 문자열str). 텍스트 표현은 형식 마스크와 일치 할 것으로 예상됩니다.yy또는yyyy올해의 위치를 ​​나타내는mm달의 위치를 ​​나타내려면DD오늘의 위치를 ​​표시합니다.

표 33-4몇 가지 가능한 형식을 나타냅니다. 이 기능을 사용하는 방법에 대한 아이디어를 제공합니다.

표 33-4. 유효한 입력 형식rdefmtdate

형식 String 결과
ddmmyy 21-2-54 1954-02-21
ddmmyy 2-12-54 1954-12-02
ddmmyy 20111954 1954-11-20
ddmmyy 130464 1964-04-13
mmm.dd.yyyy 3 월 -1967 1967-03-12
yy/mm/dd 1954, 2 월 3 일 1954-02-03
mmm.dd.yyyy 041269 1969-04-12
yy/mm/dd 2525 년 7 월에 인류는 28 일째에 살아있을 것입니다 2525-07-28
DD-MM-YY 나는 2525 년 7 월 28 일에 말했다 2525-07-28
mmm.dd.yyyy 9/14/58 1958-09-14
YY/MM/DD 47/03/29 1947-03-29
mmm.dd.yyyy 1975 년 10 월 28 일 1975-10-28
mmddyy 1985 년 11 월 14 일 1985-11-14

33.6.4. 타임 스탬프 유형

C의 타임 스탬프 유형을 사용하면 프로그램이 SQL 유형 타임 스탬프의 데이터를 처리 할 수 ​​있습니다. 보다PostgreSQL : 문서 : 9.5 : 날짜/스포츠 토토 유형동등한 유형의 경우PostgreSQLServer.

다음 함수는 타임 스탬프 유형과 함께 작동하는 데 사용될 수 있습니다.

pgtypestimestamp_from_asc

텍스트 표현에서 타임 스탬프 변수로 타임 스탬프를 구문 분석하십시오.

타임 스탬프 pgtypestimestamp_from_asc (char *str, char ** endptr);

함수는 문자열을 구문 분석합니다 (str) 및 C char* (에 대한 포인터endptr). 현재 ECPG는 항상 완전한 문자열을 구문 분석하므로 현재 첫 번째 유효하지 않은 문자의 주소를 저장하는 것이 지원되지 않습니다.*endptr. 안전하게 설정할 수 있습니다endptrto null.

함수는 성공시 구문 분석 타임 스탬프를 반환합니다. 오류로PGTYPESINVALIDTIMESTAMP반환 및errno로 설정되었습니다PGTYPES_TS_BAD_TIMESTAMP. 보다PGTYPESINVALIDTIMESTAMP이 값에 대한 중요한 메모는

일반적으로 입력 문자열에는 허용 된 날짜 사양, 공백 문자 및 허용 시간 사양의 조합이 포함될 수 있습니다. 시간대는 ECPG에 의해 지원되지 않습니다.PostgreSQL예를 들어 서버. TimeZone 지정자는 조용히 폐기됩니다.

표 33-5입력 문자열에 대한 몇 가지 예제가 포함되어 있습니다.

표 33-5. 유효한 입력 형식pgtypestimestamp_from_asc

입력 결과
1999-01-08 04:05:06 1999-01-08 04:05:06
1 월 8 일 04:05:06 1999 PST 1999-01-08 04:05:06
1999-Jan-08 04 : 05 : 06.789-8 1999-01-08 04 : 05 : 06.789 (시간대 지정자 무시)
J2451187 04 : 05-08 : 00 1999-01-08 04:05:00 (시간대 지정자 무시)
pgtypestimestamp_to_asc

날짜를 c char* 문자열로 변환합니다.

char *pgtypestimestamp_to_asc (timestamp tstamp);

함수는 타임 스탬프를받습니다tstamp유일한 인수로서 타임 스탬프의 텍스트 표현을 포함하는 할당 된 문자열을 반환합니다. 결과는로 해제되어야합니다.pgtypeschar_free ().

pgtypestimestamp_current

현재 타임 스탬프 검색.

void pgtypestimestamp_current (timestamp *ts);

이 함수는 현재 타임 스탬프를 검색하여 타임 스탬프 변수에 저장합니다.TS

pgtypestimestamp_fmt_asc

형식 마스크를 사용하여 타임 스탬프 변수를 C char로 변환합니다.

int pgtypestimestamp_fmt_asc (timestamp *ts, char *output, int str_len, char *fmtstr);

이 함수는 첫 번째 인수로 변환하기 위해 타임 스탬프에 대한 포인터를 수신합니다 (TS), 출력 버퍼에 대한 포인터 (출력), 출력 버퍼에 할당 된 최대 길이 (str_len) 및 변환에 사용할 형식 마스크 (FMTSTR).

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

형식 마스크에 다음 형식 지정자를 사용할 수 있습니다. 형식 지정자는에 사용되는 형식 지정자입니다.Strftime함수LIBC. 형식이 아닌 모든 지정자는 출력 버퍼에 복사됩니다.

  • %a- 주중 이름의 국가 표현으로 대체됩니다.

  • %a- 약식 평일 이름의 국가적 표현으로 대체됩니다.

  • %B- 전국 이름의 국가 표현으로 대체됩니다.

  • %B- 약식 월 이름의 국가적 표현으로 대체됩니다.

  • %C-- 소수점 숫자로 대체됩니다. 단일 자릿수는 0이됩니다.

  • %C- 국가 시간과 날짜의 국가적 표현으로 대체됩니다.

  • %d-와 같습니다%m/%d/%y.

  • %d- 달의 날로 십진수 (01-31)로 대체됩니다.

  • %e* %o*-POSIX 로케일 확장. 시퀀스%EC %EC %ex %ex %ey %ey %OD %OE %OH %oi %OM %OM %OS %ou %ou %ov %ow %ow %OY대안 표현을 제공해야합니다.

    추가%OB대체 월 이름을 나타 내기 위해 구현

  • %e- 월의 날로 십진수 (1-31)로 대체됩니다. 단일 자릿수는 공백이 앞서 있습니다.

  • %f-와 동일합니다%y-%m-%d.

  • %g-는 1 년으로 1 년으로 세기의 소수점으로 대체됩니다. 올해는 금주의 큰 부분을 포함하는 것입니다 (월요일 월요일).

  • %g-와 같은 해로 대체 됨%g, 그러나 세기가없는 소수점 (00-99).

  • %H-시간 (24 시간 시계)으로 십진수 (00-23)로 대체됩니다.

  • %H- 동일%B.

  • %I-시간 (12 시간 시계)으로 십진수 (01-12)로 대체됩니다.

  • %j- 올해의 날로 십진수 (001-366)로 대체됩니다.

  • %K-시간 (24 시간 시계)으로 십진수 (0-23)로 대체됩니다. 단일 자릿수는 공백이 앞서 있습니다.

  • %l-시간 (12 시간 시계)으로 십진수 (1-12)로 대체됩니다. 단일 자릿수는 공백이 앞서 있습니다.

  • %m- 순수한 숫자 (00-59)로 분으로 대체됩니다.

  • %m- 이달으로 십진수 (01-12)로 대체됩니다.

  • %n- Newline으로 대체됩니다.

  • %o*- 동일%e*.

  • %P-- 국가 표현으로 대체"ante meridiem"또는"Post Meridiem"적절하게.

  • %r-와 동일합니다%H :%m.

  • %r-와 동일합니다%i :%m :%s%p.

  • %s- 두 번째로 소수점 번호 (00-60)로 대체됩니다.

  • %s- Epoch 이후 몇 초로 대체됩니다.

  • %t-와 같습니다%H :%m :%s

  • %t- 탭으로 대체됩니다.

  • %U- 일주일 수 (일요일 일요일은 1 주일)로 십진수 (00-53)로 대체됩니다..

  • %U- 주중 (월요일은 주 1 주일)으로 십진수 (1-7)로 대체됩니다.

  • %V-는 연도 수 (월요일)로 십진수 (01-53)로 대체됩니다. 1 월 1 일에 포함 된 주가 새해에 4 일 이상이면 1 주차입니다.

  • %V-와 동일합니다%e-%b-%y.

  • %W- 연도 수 (월요일)로 소수점 번호 (00-53)로 대체됩니다..

  • %W- 주중 (일요일 일요일은 일요일)으로 십진수 (0-6)로 대체됩니다.

  • %x- 시간의 국가 표현으로 대체됩니다.

  • %x- 날짜의 국가적 대표로 대체됩니다.

  • %y- 세기는 세기로 십진수로 대체됩니다.

  • %y- 세기가없는 해로 십진수 (00-99)로 대체됩니다.

  • %Z- 시간대 이름으로 대체됩니다.

  • %Z- UTC의 시간대 오프셋으로 대체됩니다. Leading Plus Sign은 UTC의 서쪽에서 마이너스 표시 인 East of UTC를 나타내며, 시간 및 분은 각각 두 자리 숫자로 따라와 그 사이에 구분표가 없습니다 (RFC 822 날짜 헤더의 일반적인 형태)..

  • %+- 날짜와 시간의 국가적 표현으로 대체됩니다.

  • %-*-GNU LIBC 확장. 수치 출력을 수행 할 때 패딩을하지 마십시오.

  • $ _* -GNU LIBC 확장. 패딩 공간을 명시 적으로 지정합니다.

  • %0*-GNU LIBC 확장. 패딩에 대해 0을 명시 적으로 지정합니다.

  • %%-로 대체%.

pgtypestimestamp_sub

하나의 타임 스탬프를 다른 타임 스탬프에서 빼고 결과를 유형 간격의 변수로 저장합니다.

int pgtypestimestamp_sub (timestamp *ts1, timestamp *ts2, interval *iv);

함수는 타임 스탬프 변수를 빼게됩니다.TS2타임 스탬프 스포츠 토토 가리키는TS1간격 변수에 결과를 포인트하고 저장합니다.IV

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

pgtypestimestamp_defmt_asc

서식 마스크를 사용하여 텍스트 표현에서 타임 스탬프 값을 구문 분석합니다.

int pgtypestimestamp_defmt_asc (char *str, char *fmt, timestamp *d);

함수는 변수에서 타임 스탬프의 텍스트 표현을받습니다str및 변수에서 사용할 수있는 서식 마스크FMT. 결과는 변수에 저장됩니다.d

서식 마스크 인 경우FMTnull이면 함수가 기본 형식 형식 마스크로 다시 떨어집니다.%y-%m-%d%H :%m :%s.

이것은 반대 기능입니다pgtypestimestamp_fmt_asc. 가능한 서식 마스크 항목에 대해 알아 보려면 문서를 참조하십시오.

pgtypestimestamp_add_interval

타임 스탬프 변수에 간격 변수 추가.

int pgtypestimestamp_add_interval (timestamp *tin, interval *span, timestamp *tout);

함수는 타임 스탬프 변수에 대한 포인터를 수신합니다TIN및 간격 변수에 대한 포인터SPAN. TimeStamp에 간격을 추가하고 결과 타임 스탬프가 변수에 저장됩니다.tout

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

pgtypestimestamp_sub_interval

타임 스탬프 변수에서 간격 변수를 빼십시오.

int pgtypestimestamp_sub_interval (timestamp *tin, interval *span, timestamp *tout);

함수는 간격 변수를 빼냅니다.SPAN타임 스탬프 스포츠 토토 가리키는TIN결과를 가리키고 결과를 변수로 저장합니다.tout포인트로.

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

33.6.5. 간격 유형

C의 간격 유형을 사용하면 프로그램이 SQL 유형 간격의 데이터를 처리 할 수 ​​있습니다. 보다PostgreSQL : 문서 : 9.5 : 날짜/스포츠 토토 유형동등한 유형의 경우PostgreSQLServer.

다음 함수는 간격 유형과 함께 작동하는 데 사용할 수 있습니다.

pgtypesinterval_new

새로 할당 된 간격 변수에 대한 포인터를 반환합니다.

간격 *pgtypesinterval_new (void);
pgtypesinterval_free

이전에 할당 된 간격 변수의 메모리 해제.

void pgtypesinterval_free (Interval *intvl);
pgtypesinterval_from_asc

텍스트 표현의 간격을 구문 분석합니다.

interval *pgtypesinterval_from_asc (char *str, char ** endptr);

함수는 입력 문자열을 구문 분석합니다str그리고 할당 된 간격 변수에 대한 포인터를 반환합니다. 현재 ECPG는 항상 완전한 문자열을 구문 분석하므로 현재 첫 번째 유효하지 않은 문자의 주소를 저장하는 것이 지원되지 않습니다.*endptr. 안전하게 설정할 수 있습니다endptrto null.

pgtypesinterval_to_asc

유형 간격 스포츠 토토 텍스트 표현으로 변환합니다.

char *pgtypesinterval_to_asc (Interval *span);

함수는 간격 변수를 변환합니다.SPANC char*를 가리 킵니다. 출력은이 예처럼 보입니다.@ 1 일 12 시간 59 분 10 초. 결과는로 해제되어야합니다.pgtypeschar_free ().

pgtypesinterval_copy

유형 간격의 변수 복사.

int pgtypesinterval_copy (interval *intvlsrc, interval *intvldest);

함수는 간격 변수를 복사합니다.intvlsrc스포츠 토토 가리키는intvldest이전에 대상 변수에 대한 메모리를 할당해야합니다.

33.6.6. 소수점

소수점 유형은 숫자 유형과 유사합니다. 그러나 최대 30 자리의 최대 정밀도로 제한됩니다.pgtypesdecimal_newandpgtypesdecimal_free). 의 소수점 유형을 다루는 다른 기능이 많이 있습니다.Informix호환성 모드에 설명PostgreSQL : 문서 : 9.5 : 스포츠 토토 사이트 호환성 모드.

다음 함수는 소수점 유형과 함께 작동하는 데 사용할 수 있으며에만 포함되어 있지 않습니다.libcompat도서관.

pgtypesdecimal_new

새로 할당 된 10 진수 변수에 대한 포인터를 요청합니다.

Decimal *pgtypesdecimal_new (void);
pgtypesdecimal_free

소수점 유형을 자유롭게하고 모든 메모리를 해제하십시오.

void pgtypesdecimal_free (Decimal *var);

33.6.7. pgtypeslib의 errno 값

pgtypes_num_bad_numeric

인수는 숫자 변수를 포함해야하지만 (또는 숫자 스포츠 토토 가리키는 지) 실제로 메모리 내 표현이 유효하지 않았습니다.

pgtypes_num_overflow

오버플로가 발생했습니다. 숫자 유형은 거의 임의의 정밀도를 처리 할 수 ​​있으므로 숫자 변수를 다른 유형으로 변환하면 오버플로가 발생할 수 있습니다.

pgtypes_num_underflow

언더 플로가 발생했습니다. 숫자 유형은 거의 임의의 정밀도를 처리 할 수 ​​있으므로 숫자 변수를 다른 유형으로 변환하면 언더 플로가 발생할 수 있습니다.

pgtypes_num_divide_zero

제로의 부서가 시도되었습니다.

pgtypes_date_bad_date

잘못된 날짜 문자열이 전달되었습니다.pgtypesdate_from_asc함수.

pgtypes_date_err_eargs

잘못된 인수는에 전달되었습니다.pgtypesdate_defmt_asc기능.

PGTYPES_DATE_ERR_ENOSHORTDATE

입력 문자열의 유효하지 않은 토큰이 발견되었습니다.pgtypesdate_defmt_asc함수.

pgtypes_intvl_bad_interval

잘못된 간격 문자열이 전달되었습니다.pgtypesinterval_from_asc함수 또는 유효하지 않은 간격 값이 전달되었습니다.pgtypesinterval_to_asc기능.

pgtypes_date_err_enotdmy

요일/월/년 과제에 불일치가있었습니다pgtypesdate_defmt_asc기능.

pgtypes_date_bad_day

달의 유효하지 않은 날 값은pgtypesdate_defmt_asc기능.

pgtypes_date_bad_month

잘못된 달 값은에 의해 발견되었습니다.pgtypesdate_defmt_asc기능.

PGTYPES_TS_BAD_TIMESTAMP

잘못된 타임 스탬프 스트링 패스가 전달되었습니다pgtypestimestamp_from_asc함수 또는 유효하지 않은 타임 스탬프 값이 전달되었습니다pgtypestimestamp_to_asc함수.

pgtypes_ts_err_einftime

그것을 처리 할 수없는 맥락에서 무한 타임 스탬프 값이 발생했습니다.

33.6.8. pgtypeslib의 특수 상수

PGTYPESINVALIDTIMESTAMP

잘못된 타임 스탬프를 나타내는 타임 스탬프 유형의 값. 이것은 함수에 의해 반환됩니다pgtypestimestamp_from_asc구문 분석 오류. 의 내부 표현으로 인해타임 스탬프데이터 유형,pgtypesinvalidtimestamp동시에 유효한 타임 스탬프입니다. 로 설정되었습니다.1899-12-31 23:59:59. 오류를 감지하려면 응용 프로그램이 테스트 할뿐만 아니라pgtypesinvalidtimestamp그러나errno! = 0각 호출 후pgtypestimestamp_from_asc.