Postgresql 9.3.25 문서 | ||||
---|---|---|---|---|
Postgre윈 토토 : 문서 : 9.3 : 동적 윈 토토 | 젠 토토 : 문서 : 9.3 : ECPG- C에 포함 된 SQL | 33 장ECPG- 내장SQLin c | 다음 |
PGTYPES 라이브러리지도PostgreSQL데이터베이스 유형에 대한 데이터베이스 유형 C 프로그램에 사용할 수 있습니다. 또한 기능을 제공합니다 C 내에서 이러한 유형의 기본 계산, 즉 의 도움PostgreSQL서버. 보다 다음 예 :
Exec SQL 시작 선언 섹션; 날짜 1; 타임 스탬프 TS1, TSOUT; 간격 IV1; char *out; Exec SQL END DELLARE SECTION; pgtypesdate_today (& date1); Exec SQL SELECT SELECT : TS1, : DATETBL에서 IV1 여기서 D = : DATE1; pgtypestimestamp_add_interval (& ts1, & iv1, & tsout); out = pgtypestimestamp_to_asc (& tsout); printf ( "시작 + 시간 : %s \ n", out); pgtypeschar_free (out);
와 같은 일부 기능pgtypesnumeric_to_asc
포인터를 a로 반환합니다
새로 할당 된 문자열. 이러한 결과는 해제되어야합니다
와 함께pgtypeschar_free
대신무료
. (이것은 단지 중요합니다
메모리 할당 및 릴리스가 때때로 필요한 Windows
같은 도서관에 의해 완료되었습니다.)
와이즈 토토 유형은 임의의 계산을 수행하는 것을 제공합니다
정도. 보다PostgreSQL : 문서 : 9.3 : 스포츠 토토 결과 유형의 동등한 유형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. 값을 구문 분석 할 수있는 경우 성공적으로 유효한 포인터가 반환되고 널 포인터가 반환됩니다. 현재 ECPG는 항상 완전한 문자열을 구문 분석합니다. 현재 첫 번째 주소를 저장하는 것을 지원하지 않습니다. 의 잘못된 문자*endptr. 당신은 할 수 있습니다 안전하게 설정endptrto null.
pgtypesnumeric_to_asc
|Malloc
그것은 문자열 표현을 포함합니다
와이즈 토토 유형Num.
char *pgtypesnumeric_to_asc (numeric *num, int dscale);
와이즈 토토 값은로 인쇄됩니다.dscale라운드가 적용되는 소수 와이즈 토토
필요한. 결과는로 해제되어야합니다.pgtypeschar_free ()
.
pgtypesnumeric_add
세 번째 변수에 두 개의 와이즈 토토 변수를 추가합니다.
int pgtypesnumeric_add (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수가 변수를 추가합니다var1andvar2결과 변수로결과. 함수는 성공시 0을 반환합니다 그리고 오류의 경우 -1.
PGTYPESNUMERIC_SUB
두 개의 숫자 변수를 빼고 결과를 3 분의 1 하나.
int pgtypesnumeric_sub (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수가 변수를 빼냅니다var2변수에서var1. 작업 결과는에 저장됩니다 변하기 쉬운결과. 함수는 0 on을 반환합니다 성공 및 오류의 경우 -1.
pgtypesnumeric_mul
두 개의 숫자 변수를 곱하고 결과를 3 분의 1에 반환합니다. 하나.
int pgtypesnumeric_mul (숫자 *var1, 숫자 *var2, 숫자 *결과);
함수는 변수를 곱합니다var1andvar2. 결과 작업의 변수에 저장됩니다결과. 함수는 성공시 0, -1 in에서 0을 반환합니다 오류 사례.
pgtypesnumeric_div
두 개의 숫자 변수를 나누고 결과를 3 분의 1에 반환합니다. 하나.
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 the long_val, 숫자 *var);
이 함수는 서명 된 유형의 변수를 허용합니다. 와이즈 토토 변수에 저장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 (숫자 *nv, long *lp);
함수는 숫자 값을 변수에서 숫자로 변환합니다.NV긴 정수를 가리 킵니다 변수LP0을 반환합니다 오류가 오류가 발생하면 성공하면 오류가 발생합니다. ~에 오버플로, 글로벌 변수errno의지 로 설정pgtypes_num_overflow추가로.
pgtypesnumeric_to_decimal
유형 와이즈 토토의 변수를 10 진수로 변환합니다.
int pgtypesnumeric_to_decimal (Numeric *Src, Decimal *dst);
함수는 숫자 값을 변수에서 숫자로 변환합니다.SRC소수 변수를 가리 킵니다 저것dst0으로 반환합니다 오류가 오류가 발생하는 경우 성공 및 -1. 오버플로에서 글로벌 변수19899_19906로 설정됩니다pgtypes_num_overflow추가로.
PGTYPESNUMERIC_FROM_DECIMAL
십진수의 변수를 와이즈 토토로 변환합니다.
int pgtypesnumeric_from_decimal (Decimal *Src, Numeric *dst);
함수는 변수에서 소수점 값을 변환합니다.SRC와이즈 토토 변수를 가리 킵니다 저것dst0으로 반환됩니다 오류가 발생하면 성공하고 -1. 소수 유형이기 때문에 와이즈 토토 유형의 제한된 버전으로 구현 됨, 오버 플로우 이 전환으로는 발생할 수 없습니다.
C의 날짜 유형을 사용하면 프로그램이 데이터를 처리 할 수 있습니다. SQL 유형 날짜. 보다PostgreSQL : 문서 : 9.3 : 날짜/배트맨 토토 유형동등한 유형의 경우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);
함수는 날짜를받습니다ddateAS
유일한 매개 변수. 양식의 날짜를 출력합니다1999-01-18, 즉yyyy-mm-dd형식. 결과는로 해제되어야합니다.pgtypeschar_free ()
.
pgtypesdate_julmdy
유형의 변수.
void pgtypesdate_julmdy (날짜 d, int *mdy);
함수는 날짜를받습니다d및 a 3 정수 값 배열에 대한 포인터mdy. 변수 이름은 순차를 나타냅니다 주문하다:mdy [0]가 포함되도록 설정됩니다 월 수,mdy [1]오늘의 가치와mdy [2]의지 연도를 포함하십시오.
pgtypesdate_mdyjul
날, 달 및 날짜의 해.
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- 올해의 수 와이즈 토토 번호.
DDD- 오늘의 이름 (약식).
mmm- 이달의 이름 (약식).
다른 모든 문자는 출력 문자열에 1 : 1을 복사합니다.
테이블 33-3몇 가지 가능한 형식을 나타냅니다. 이것은 당신에게 줄 것입니다 이 기능을 사용하는 방법에 대한 아이디어. 모든 출력 라인은 같은 날짜 : 1959 년 11 월 23 일.
표 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 | 월, 1959 년 11 월 23 일 |
(ddd) mmm. DD, yyyy | (월) 1959 년 11 월 23 일 |
pgtypesdate_defmt_asc
형식 마스크를 사용하여 Cchar*유형 날짜의 값으로 문자열.
int pgtypesdate_defmt_asc (날짜 *d, char *fmt, char *str);
함수는 날짜 값에 대한 포인터를 수신합니다. 작동 결과를 유지하십시오 (d), The 날짜를 구문 분석하는 데 사용할 마스크 형식 (FMT) 및 텍스트를 포함하는 C char* 문자열 날짜의 표현 (str). 그만큼 텍스트 표현은 형식 마스크와 일치 할 것으로 예상됩니다. 그러나 문자열을 1 : 1 매핑 할 필요는 없습니다. 형식 마스크. 이 함수는 순차적 순서 만 분석합니다 리터럴 찾기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 | 7 월 2525 년, 7 월, 인류는 28 일에 살아있을 것입니다 | 2525-07-28 |
dd-mm-yy | I said on the 28th of July in the year 2525 | 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 |
C의 타임 스탬프 유형을 사용하면 프로그램이 데이터를 처리 할 수 있습니다. SQL 유형 타임 스탬프. 보다섹션 8.5동등한 유형의 경우 그만큼PostgreSQLServer.
다음 함수는 타임 스탬프와 함께 작동하는 데 사용할 수 있습니다. 유형:
pgtypestimestamp_from_asc
텍스트 표현에서 a로 타임 스탬프를 구문 분석합니다 타임 스탬프 변수.
타임 스탬프 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입력 문자열에 대한 몇 가지 예제가 포함되어 있습니다.
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);
함수는 Timestamp에 대한 포인터를 수신하여 변환합니다. 첫 번째 주장 (TS), 출력 버퍼 (출력), 최대 길이 출력 버퍼 (에 할당되었습니다.str_len) 및 사용 할 형식 마스크 변환 (FMTSTR).
성공시, 함수는 0과 음수 값을 반환합니다. 오류가 발생했습니다.
형식 마스크에 다음 형식 지정자를 사용할 수 있습니다.
형식 지정자는에 사용되는 형식 지정자입니다.Strftime
함수 inLIBC. 형식이 아닌 모든 지정자가 복사됩니다
출력 버퍼로.
%a-는 국가로 대체됩니다 주중 이름의 표현.
%a-는 National으로 대체됩니다 약식 평일 이름의 표현.
%B-는 National으로 대체됩니다 한 달 이름의 표현.
%B-는 국가로 대체됩니다 약식 월 이름의 표현.
%C- (Year / 100)로 대체됩니다 십진수; 단일 자릿수는 0이됩니다.
%C-는 National으로 대체됩니다 시간과 날짜의 표현.
%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-- 월 날로 대체됩니다 10 진수 (1-31); 단일 자릿수는 공백이 앞서 있습니다.
%f-와 동일합니다%y-%m-%d.
%g-는 1 년으로 소수점으로 대체됩니다 세기가있는 숫자. 올해는 더 큰 것을 포함하는 것입니다 금주의 일부 (월요일 월요일).
%g-와 같은 해로 대체 됨%g이지만 소수점이없는 숫자입니다 세기 (00-99).
%H- 시간으로 대체됩니다 (24 시간 시계) 소수점 숫자 (00-23).
%H- 동일%B.
%I- 시간으로 대체됩니다 (12 시간 시계) 소수점 숫자 (01-12).
%j-는 올해의 날로 대체됩니다 10 진수로 (001-366).
%K- 시간으로 대체됩니다 (24 시간 클럭) 소수점 (0-23)으로서; 단일 자릿수는 a 공백.
%l- 시간으로 대체됩니다 (12 시간 클럭) 소수점 수 (1-12); 단일 자릿수는 a 공백.
%m-는 분으로 대체됩니다 10 진수 (00-59).
%m-- 달로 대체됩니다 10 진수 (01-12).
%n- Newline으로 대체됩니다.
%o*- 동일%e*.
%p-는 국가로 대체됩니다 둘 중 하나의 표현"ante meridiem"또는"Post Meridiem"적절한.
%r-와 동일합니다%H :%m.
%r-와 동일합니다%i :%m :%s%p.
%s-- 두 번째로 대체됩니다 10 진수 (00-60).
%s-는 수로 대체됩니다 시대 이후 몇 초, utc.
%t-와 같습니다%H :%m :%s
%t- 탭으로 대체됩니다.
%U-는 주 수로 대체됩니다 올해 (일요일 일요일 일요일 일요일) 십진수로서 (00-53).
%U- 주중 (월요일 요일의 첫날) 소수점 (1-7).
%V-는 주 수로 대체됩니다 올해 (월요일 월요일, 첫날) 소수점 숫자 (01-53). 1 월 1 일에 포함 된 주에 4 일 이상 새해는 1 주차입니다. 그렇지 않으면 마지막 주입니다 전년도, 다음 주는 1 주차입니다.
%V-와 같습니다%e-%b-%y.
%W-는 주 수로 대체됩니다 올해 (월요일 월요일, 첫날) 소수점 숫자 (00-53).
%W- 주중 (일요일 1 주일의 첫날) 소수점 숫자 (0-6).
%x-는 National으로 대체됩니다 시간의 표현.
%x-는 National으로 대체됩니다 날짜의 표현.
%y-는 올해로 대체됩니다 10 진수로 세기.
%y-는없는 해로 대체됩니다 10 진수로 세기 (00-99).
%Z-는 시간대로 대체됩니다 이름.
%Z-는 시간대로 대체됩니다 UTC에서 상쇄; 주요 플러스 표지판은 UTC의 동쪽을 의미합니다. UTC의 서쪽에 대한 마이너스 부호, 시간 및 분은 2 개를 따릅니다. 그들 사이에 구분 기호 각각을 숫자 (RFC 822의 일반적인 형태 날짜 헤더).
%+-는 National으로 대체됩니다 날짜와 시간의 표현.
%-*-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. 간격을 추가합니다 타임 스탬프 및 결과 타임 스탬프를 저장하는 변수에서.TOUT
성공시, 함수는 0과 음수 값을 반환합니다. 오류가 발생했습니다.
pgtypestimestamp_sub_interval
타임 스탬프 변수에서 간격 변수를 빼십시오.
int pgtypestimestamp_sub_interval (timestamp *tin, interval *span, timestamp *tout);
함수는 간격 변수를 빼냅니다.SPAN타임 스탬프 변수를 가리키는TIN결과를 가리키고 저장합니다 변수tout
성공시, 함수는 0을 반환합니다. 오류가 발생했습니다.
C의 간격 유형을 사용하면 프로그램이 데이터를 처리 할 수 있습니다. SQL 유형 간격. 보다섹션 8.5동등한 유형의 경우 그만큼PostgreSQLServer.
다음 함수는 간격으로 작동하는 데 사용할 수 있습니다. 유형:
pgtypesinterval_new
새로 할당 된 간격 변수에 대한 포인터를 반환합니다.
간격 *pgtypesinterval_new (void);
pgtypesinterval_free
이전에 할당 된 간격의 메모리를 해제합니다 변하기 쉬운.
void pgtypesinterval_new (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
SESS. 결과는로 해제되어야합니다.pgtypeschar_free ()
.
pgtypesinterval_copy
유형 간격의 변수 복사.
int pgtypesinterval_copy (interval *intvlsrc, interval *intvldest);
함수는 간격 변수를 복사합니다.intvlsrc변수를 가리키는intvldest할당해야합니다 이전에 대상 변수에 대한 메모리.
소수점 유형은 숫자 유형과 유사합니다. 그러나 그것은입니다
최대 30 자리의 최대 정밀도로 제한됩니다. ~ 안에
힙에만 생성 될 수있는 숫자 유형과 대조적으로
소수점 유형은 스택 또는 힙에 생성 될 수 있습니다.
(기능을 통해pgtypesdecimal_new
andpgtypesdecimal_free
). 다른 많은 것들이 있습니다
의 소수점 유형을 다루는 기능Informix호환성 모드에 설명PostgreSQL : 문서 : 9.3 : 토토 베이 호환성 모드.
다음 함수는 소수점과 함께 작동하는 데 사용할 수 있습니다. 유형은에만 포함되어 있지 않습니다libcompat도서관.
pgtypesdecimal_new
새로 할당 된 소수점 변수에 대한 포인터를 요청합니다.
Decimal *pgtypesdecimal_new (void);
pgtypesdecimal_free
소수점 유형을 자유롭게하고 모든 메모리를 해제하십시오.
void pgtypesdecimal_free (Decimal *var);
인수는 숫자 변수를 포함해야합니다 (또는 숫자 변수) 그러나 실제로 메모리 내 표현이었다 유효하지 않은.
오버플로가 발생했습니다. 와이즈 토토 유형이 처리 할 수 있기 때문입니다 거의 임의의 정밀도로 와이즈 토토 변수를 변환합니다 다른 유형은 오버플로를 유발할 수 있습니다.
언더 플로가 발생했습니다. 와이즈 토토 유형이 처리 할 수 있기 때문입니다 거의 임의의 정밀도로 와이즈 토토 변수를 변환합니다 다른 유형은 언더 플로를 유발할 수 있습니다.
제로의 부서가 시도되었습니다.
잘못된 날짜 문자열이 전달되었습니다.pgtypesdate_from_asc
함수.
잘못된 인수는에 전달되었습니다.pgtypesdate_defmt_asc
함수.
입력 문자열의 잘못된 토큰이 발견되었습니다.pgtypesdate_defmt_asc
함수.
잘못된 간격 문자열이 전달되었습니다.pgtypesinterval_from_asc
함수 또는 무효
간격 값이에 전달되었습니다.pgtypesinterval_to_asc
함수.
요일/월/년 과제에 불일치가있었습니다pgtypesdate_defmt_asc
기능.
달의 잘못된 날 값은에 의해 발견되었습니다.pgtypesdate_defmt_asc
함수.
잘못된 달 값은 발견되었습니다.pgtypesdate_defmt_asc
기능.
유효하지 않은 타임 스탬프 스트링 패스가 전달되었습니다pgtypestimestamp_from_asc
함수 또는 유효하지 않습니다
타임 스탬프 값이에 전달되었습니다.pgtypestimestamp_to_asc
기능.
무한 타임 스탬프 값이 맥락에서 발생했습니다. 처리 할 수 없습니다.
잘못된 타임 스탬프를 나타내는 타임 스탬프 유형의 값.
이것은 함수에 의해 반환됩니다pgtypestimestamp_from_asc
구문 분석 오류. 메모
그 내부 표현으로 인해타임 스탬프데이터 유형,pgtypesinvalidtimestamp도 유효한 타임 스탬프입니다
동시. 로 설정되었습니다.1899-12-31
23:59:59. 오류를 감지하려면
응용 프로그램은 테스트 할뿐만 아니라pgtypesinvalidtimestamp그러나errno! = 0각 호출 후pgtypestimestamp_from_asc
.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
동적 SQL | 젠 토토 : 문서 : 9.3 : ECPG- C에 포함 된 SQL | 설명자 사용 영역 |