PGTYPES 라이브러리지도PostgreSQLC 프로그램에서 사용할 수있는 데이터베이스 유형. 또한 C 내에서 이러한 유형을 사용하여 기본 계산을 수행하는 기능도 제공합니다.PostgreSQL서버. 다음 예를 참조하십시오.
Exec SQL 시작 선언 섹션;
와 같은 일부 기능pgtypesnumeric_to_asc
새로 할당 된 문자열에 포인터를 반환합니다. 이 결과는로 해제되어야합니다.pgtypeschar_free
대신무료
. (이것은 메모리 할당과 릴리스가 때때로 같은 라이브러리에서 수행 해야하는 Windows에서만 중요합니다.)
숫자 유형은 임의의 정밀도로 계산을 제공하는 것을 제공합니다. 보다섹션 8.1동등한 유형의 경우PostgreSQL서버. 임의의 정밀성으로 인해이 변수는 동적으로 확장하고 축소 할 수 있어야합니다.pgtypesnumeric_new
andpgtypesnumeric_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
. 안전하게 설정할 수 있습니다endptr
to null.
pgtypesnumeric_to_asc
#|Malloc
숫자 유형의 문자열 표현을 포함하는Num
.
char *pgtypesnumeric_to_asc (숫자 *num, int dscale);
숫자 값은로 인쇄됩니다.dscale
필요한 경우 반올림이 적용되는 소수 숫자. 결과는로 해제되어야합니다.pgtypeschar_free ()
.
pgtypesnumeric_add
#세 번째 변수에 두 개의 숫자 배트맨 토토 추가합니다.
int pgtypesnumeric_add (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수가 배트맨 토토 추가합니다var1
andvar2
결과 변수로결과
. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.
PGTYPESNUMERIC_SUB
#두 개의 숫자 변수를 빼고 결과를 세 번째 변수로 반환합니다.
int pgtypesnumeric_sub (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수가 배트맨 토토 빼냅니다var2
변수에서var1
. 작업 결과는 변수에 저장됩니다결과
. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.
pgtypesnumeric_mul
#두 개의 숫자 변수에 곱하고 결과를 세 번째 변수로 반환합니다.
int pgtypesnumeric_mul (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수는 배트맨 토토 곱합니다var1
andvar2
. 작업 결과는 변수에 저장됩니다결과
. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.
pgtypesnumeric_div
#두 개의 숫자 변수를 나누고 결과를 세 번째 변수로 반환합니다.
int pgtypesnumeric_div (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수는 배트맨 토토 나눕니다var1
byvar2
. 작업 결과는 변수에 저장됩니다결과
. 함수는 성공시 0을, 오류의 경우 -1을 반환합니다.
pgtypesnumeric_cmp
#두 개의 숫자 변수 비교.
int pgtypesnumeric_cmp (숫자 *var1, 숫자 *var2)
이 함수는 두 가지 숫자 배트맨 토토 비교합니다. 오류의 경우int_max
반환됩니다. 성공시 함수는 세 가지 가능한 결과 중 하나를 반환합니다.
1, ifvar1
var2
-1, ifvar1
보다 작습니다var2
0, ifvar1
andvar2
동일합니다
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_overflow
추가로.
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 (Numeric *nv, long *lp);
함수는 숫자 값을 변수에서 숫자로 변환합니다.NV
긴 정수 배트맨 토토 가리 킵니다.LP
오류가 발생하면 오류가 발생하면 0을 반환하고 오류가 발생하면 오류가 발생합니다.errno
로 설정됩니다pgtypes_num_overflow
and Underflowerrno
로 설정됩니다pgtypes_num_underflow
.
pgtypesnumeric_to_decimal
#유형 숫자의 배트맨 토토 10 진수로 변환합니다.
int pgtypesnumeric_to_decimal (Numeric *src, Decimal *dst);
함수는 숫자 값을 변수에서 숫자로 변환합니다.SRC
소수점 배트맨 토토 가리 킵니다.dst
오류가 오류가 발생하면 오류가 발생하면 0을 반환하고 -1을 반환합니다.errno
로 설정됩니다pgtypes_num_overflow
추가로.
pgtypesnumeric_from_decimal
#십진수 유형 배트맨 토토 숫자로 변환합니다.
int pgtypesnumeric_from_decimal (Decimal *Src, Numeric *dst);
함수는 변수에서 소수점 값을 변환합니다.SRC
숫자 배트맨 토토 가리 킵니다.dst
오류가 발생하면 성공시 0을, -1을 반환합니다.
C의 날짜 유형을 사용하면 프로그램이 SQL 유형 날짜의 데이터를 처리 할 수 있습니다. 보다PostgreSQL : 문서 : 17 : 8.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
. 안전하게 설정할 수 있습니다endptr
to null.
함수는 항상 MDY 형식 날짜를 가정하고 현재 ECPG 내에서이를 변경할 변수는 없습니다.
표 34.2허용 된 입력 형식을 보여줍니다.
표 34.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 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을 복사합니다.
표 34.3몇 가지 가능한 형식을 나타냅니다. 이 기능을 사용하는 방법에 대한 아이디어가 제공됩니다.
표 34.3. 유효한 입력 형식pgtypesdate_fmt_asc
형식 | 결과 |
---|---|
mmddyy |
112359 |
ddmmyy |
231159 |
yymmdd |
591123 |
yy/mm/dd |
59/11/23 |
YY MM DD |
59 11 23 |
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 (날짜 *d, char *fmt, char *str);
함수는 작동 결과를 유지 해야하는 날짜 값에 대한 포인터를 수신합니다 (d
), 날짜를 구문 분석하는 데 사용할 형식 마스크 (FMT
) 및 날짜 (의 텍스트 표현을 포함하는 C char* 문자열str
). 텍스트 표현은 형식 마스크와 일치 할 것으로 예상됩니다.yy
또는yyyy
올해의 위치를 나타내는mm
달의 위치를 표시하려면DD
오늘의 위치를 표시합니다.
표 34.4몇 가지 가능한 형식을 나타냅니다. 이 기능을 사용하는 방법에 대한 아이디어를 제공합니다.
표 34.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 |
yyyy |
3 월 -1967 |
1967-03-12 |
yy/mm/dd |
1954, 2 월 3 일 |
1954-02-03 |
yyyy |
041269 |
1969-04-12 |
yy/mm/dd |
2525 년 7 월에 인류는 28 일째에 살아있을 것입니다 |
2525-07-28 |
dd-mm-yy |
나는 2525 년 7 월 28 일에 말했다 |
2525-07-28 |
yyyy |
9/14/58 |
1958-09-14 |
yy/mm/dd |
47/03/29 |
1947-03-29 |
yyyy |
1975 년 10 월 28 일 |
1975-10-28 |
mmddyy |
1985 년 11 월 14 일 |
1985-11-14 |
C의 타임 스탬프 유형을 사용하면 프로그램이 SQL 유형 타임 스탬프의 데이터를 처리 할 수 있습니다. 보다PostgreSQL : 문서 : 17 : 8.5. 날짜/토토 꽁 머니 유형동등한 유형의 경우PostgreSQLServer.
다음 함수는 타임 스탬프 유형과 함께 작동하는 데 사용할 수 있습니다.
pgtypestimestamp_from_asc
#텍스트 표현에서 타임 스탬프 변수로 타임 스탬프를 구문 분석합니다.
타임 스탬프 pgtypestimestamp_from_asc (char *str, char ** endptr);
함수는 문자열을 구문 분석합니다 (str
) 및 C char* (에 대한 포인터endptr
). 현재 ECPG는 항상 완전한 문자열을 구문 분석하므로 현재 첫 번째 유효하지 않은 문자의 주소를 저장하는 것이 지원되지 않습니다.*endptr
. 안전하게 설정할 수 있습니다endptr
to null.
함수는 성공시 구문 분석 타임 스탬프를 반환합니다. 오류로pgtypesinvalidtimestamp
반환 및errno
로 설정되었습니다PGTYPES_TS_BAD_TIMESTAMP
. 보다pgtypesinvalidtimestamp
이 값에 대한 중요한 메모.
일반적으로 입력 문자열에는 허용 된 날짜 사양, 공백 문자 및 허용 시간 사양의 조합이 포함될 수 있습니다. 시간대는 ECPG에 의해 지원되지 않습니다.PostgreSQL예를 들어 서버가 있습니다. TimeZone 지정자는 조용히 폐기됩니다.
표 34.5입력 문자열에 대한 몇 가지 예제가 포함되어 있습니다.
표 34.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
함수 inLIBC. 형식이 아닌 모든 지정자는 출력 버퍼에 복사됩니다.
%a
- 주중 이름의 국가 표현으로 대체됩니다.
%a
- 약식 평일 이름의 국가적 표현으로 대체됩니다.
%B
- 전국 이름의 국가적 대표로 대체됩니다.
%B
- 약식 월 이름의 국가적 표현으로 대체됩니다.
%C
-- 소수점 숫자로 (100 년)로 대체됩니다. 단일 자릿수는 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
, 그러나 Century가없는 소수점 수 (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
- 일주일 수 (일요일 일요일) 소수점 번호 (00–53)로 대체됩니다..
%U
- 주중 (월요일 월요일)으로 십진수 (1-7)로 대체됩니다..
%V
-는 연도 수 (월요일)로 십진수 (01–53)로 대체됩니다. 1 월 1 일에 포함 된 주가 새해에 4 일 이상이면 1 주차입니다.
%V
-와 같습니다%e-%b-%y
.
%W
- 연도의 주 수 (월요일)로 십진수 (00–53)로 대체됩니다.
%W
- 주중 (일요일은 일요일 일요일)으로 십진수 (0-6)로 대체됩니다..
%X
-- 국가 대표로 대체됩니다.
%X
- 날짜의 국가적 대표로 대체됩니다.
%y
- 세기로 10 세기로 대체됩니다.
%y
- 세기가없는 해로 십진수 (00–99)로 대체됩니다.
%Z
- 시간대 이름으로 대체됩니다.
%Z
- UTC의 시간대 오프셋으로 대체됩니다. Leading Plus Sign은 UTC의 서쪽에 대한 마이너스 표시 인 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
서식 마스크 인 경우FMT
null이면 함수가 기본 형식 형식 마스크로 다시 떨어집니다.%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과 음수 값을 반환합니다.
C의 간격 유형을 사용하면 프로그램이 SQL 유형 간격의 데이터를 처리 할 수 있습니다. 보다PostgreSQL : 문서 : 17 : 8.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
. 안전하게 설정할 수 있습니다endptr
to null.
pgtypesinterval_to_asc
#유형 간격 배트맨 토토 텍스트 표현으로 변환합니다.
char *pgtypesinterval_to_asc (Interval *span);
함수는 간격 배트맨 토토 변환합니다.SPAN
C char*를 가리 킵니다. 출력은이 예처럼 보입니다.@ 1 일 12 시간 59 분 10 초
. 결과는로 해제되어야합니다.pgtypeschar_free ()
.
pgtypesinterval_copy
#유형 간격의 변수 복사.
int pgtypesinterval_copy (interval *intvlsrc, interval *intvldest);
함수는 간격 배트맨 토토 복사합니다.intvlsrc
배트맨 토토 가리키는intvldest
이전에 대상 변수에 대한 메모리를 할당해야합니다.
소수점 유형은 숫자 유형과 유사합니다. 그러나 최대 30 자리의 최대 정밀도로 제한됩니다.pgtypesdecimal_new
andpgtypesdecimal_free
). 의 소수점 유형을 다루는 다른 기능이 많이 있습니다.Informix호환성 모드에 설명토토 사이트 PostgreSQL : 문서 : 17 : 34.15. Informix 호환성 모드.
다음 함수는 소수점 유형과 함께 작동하는 데 사용할 수 있으며에만 포함되어 있지 않습니다.libcompat
도서관.
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
#그것을 처리 할 수없는 맥락에서 무한 타임 스탬프 값이 발생했습니다.
pgtypesinvalidtimestamp
#잘못된 타임 스탬프를 나타내는 타임 스탬프 유형의 값. 이것은 함수에 의해 반환됩니다pgtypestimestamp_from_asc
구문 분석 오류. 의 내부 표현으로 인해타임 스탬프
데이터 유형,pgtypesinvalidtimestamp
동시에 유효한 타임 스탬프입니다. 로 설정되었습니다.1899-12-31 23:59:59
. 오류를 감지하려면 응용 프로그램이 테스트 할뿐만 아니라pgtypesinvalidtimestamp
하지만errno! = 0
각 호출 후pgtypestimestamp_from_asc
.
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면