Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ kèo bóng đá c1 PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

35.6. Thư viện PGTYPES

Bản đồ thư viện PGTYPESPostgreSQLCác loại cơ sở dữ liệu với các loại tương đương C có thể được sử dụng trong các chương trình C. Nó cũng cung cấp các chức năng để thực hiện các tính toán cơ bản với các loại đó trong c, tức là, không có sự trợ giúp kèo bóng đá c1PostgreSQLMáy chủ. Xem ví dụ sau:

EXEC SQL bắt đầu khai báo;
   kèo bóng đá c1 kèo bóng đá c1 1;
   Dấu thời gian TS1, Tsout;
   khoảng IV1;
   char *ra;
EXEC SQL END TUYÊN BỐ TUYÊN BỐ;

Pgtypesdate_today (& date1);
EXEC SQL Chọn bắt đầu, thời lượng vào: TS1,: IV1 từ datetbl trong đó d =: date1;
Pgtypestimestamp_add_interval (& ts1, & iv1, & tsout);
ra = pgtypestimestamp_to_asc (& tsout);
printf ("Bắt đầu + thời lượng: %s \ n", out);
Pgtypeschar_free (ra);

35.6.1. Chuỗi ký tự

Một số chức năng nhưpgtypesnumeric_to_ascTrả lại một con trỏ cho chuỗi ký tự được phân bổ mới. Những kết quả này nên được giải phóng bằngpgtypeschar_freethay vìmiễn phí. (Điều này chỉ quan trọng trên Windows, trong đó phân bổ và phát hành bộ nhớ đôi khi cần được thực hiện bởi cùng một thư viện.)

35.6.2. Loại số

Loại số cung cấp các tính toán với độ chính xác tùy ý. Nhìn thấyPhần 8.112570_12604PostgreSQLMáy chủ. Do độ chính xác tùy ý, biến số này cần có khả năng mở rộng và co lại một cách linh hoạt. Đó là lý do tại sao bạn chỉ có thể tạo các biến số trên đống, bằng phương tiện kèo bóng đá c1pgtypesnumeric_newpgtypesnumeric_freechức năng. Loại thập phân, tương tự nhưng có giới hạn về độ chính xác, có thể được tạo trên ngăn xếp cũng như trên đống.

Các chức năng sau đây có thể được sử dụng để hoạt động với loại số:

pgtypesnumeric_new

13282_13340

13365_13401
pgtypesnumeric_free

miễn phí một loại số, giải phóng tất cả bộ nhớ kèo bóng đá c1 nó.

void pgtypesnumeric_free (số *var);
pgtypesnumeric_from_asc

phân tích loại số từ ký hiệu chuỗi kèo bóng đá c1 nó.

Số *pgtypesnumeric_from_asc (char *str, char ** endptr);

Định dạng hợp lệ là ví dụ:-2, .794, +3.44, 592.49E07hoặc-32.84E-414083_14327*EndPtr. Bạn có thể đặt một cách an toànendptrđến null.

pgtypesnumeric_to_asc

Trả về một con trỏ cho một chuỗi được phân bổ bởimallocCó chứa biểu diễn chuỗi kèo bóng đá c1 loại sốnum.

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

Giá trị số sẽ được in bằngDSCALEchữ số thập phân, với làm tròn được áp dụng nếu cần thiết. Kết quả phải được giải phóng bằngpgtypeschar_free ().

pgtypesnumeric_add

Thêm hai kèo bóng đá c1 số vào một thứ ba.

int pgtypesnumeric_add (số *var1, số *var2, số *kết quả);

Hàm thêm các kèo bóng đá c1VAR1var2vào kèo bóng đá c1 kết quảresult. Hàm trả về 0 khi thành công và -1 trong trường hợp lỗi.

pgtypesnumeric_sub

Trừ hai kèo bóng đá c1 số và trả về kết quả trong một lần thứ ba.

int pgtypesnumeric_sub (số *var1, số *var2, số *result

Hàm trừ kèo bóng đá c1var2Từ kèo bóng đá c1VAR1. Kết quả kèo bóng đá c1 hoạt động được lưu trữ trong biếnresult. Hàm trả về 0 khi thành công và -1 trong trường hợp lỗi.

pgtypesnumeric_mul

Nhân hai kèo bóng đá c1 số và trả về kết quả trong một phần ba.

int pgtypesnumeric_mul (số *var1, số *var2, số *result

Hàm nhân lên các kèo bóng đá c1VAR1var2. Kết quả kèo bóng đá c1 hoạt động được lưu trữ trong biếnresult. Hàm trả về 0 khi thành công và -1 trong trường hợp lỗi.

pgtypesnumeric_div

chia hai kèo bóng đá c1 số và trả về kết quả trong một phần ba.

int pgtypesnumeric_div (số *var1, số *var2, số *result

Hàm chia các kèo bóng đá c1VAR1bởivar2. Kết quả kèo bóng đá c1 hoạt động được lưu trữ trong biếnresult. Hàm trả về 0 khi thành công và -1 trong trường hợp lỗi.

pgtypesnumeric_cmp

So sánh hai kèo bóng đá c1 số.

int pgtypesnumeric_cmp (số *var1, số *var2)

Hàm này so sánh hai kèo bóng đá c1 số. Trong trường hợp lỗi,int_maxđược trả về. Khi thành công, chức năng trả về một trong ba kết quả có thể:

  • 1, nếuvar1lớn hơnvar2

  • -1, nếuVAR1nhỏ hơnvar2

  • 0, nếuVAR1var2bằng nhau

pgtypesnumeric_from_int

Chuyển đổi kèo bóng đá c1 INT thành kèo bóng đá c1 số.

int pgtypesnumeric_from_int (đã ký int_val, số *var);

18221_18313var. Khi thành công, 0 được trả lại và -1 trong trường hợp thất bại.

pgtypesnumeric_from_long

Chuyển đổi kèo bóng đá c1 int dài thành kèo bóng đá c1 số.

18587_18658

Hàm này chấp nhận một kèo bóng đá c1 số có chữ ký dài và lưu trữ nó trong kèo bóng đá c1 sốvar. Khi thành công, 0 được trả lại và -1 trong trường hợp thất bại.

pgtypesnumeric_copy

Sao chép qua một kèo bóng đá c1 số vào một kèo bóng đá c1 khác.

int pgtypesnumeric_copy (số *src, số *dst);

Hàm này sao chép giá trị kèo bóng đá c1 biếnSRCchỉ vào kèo bóng đá c1 đóDSTĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi.

pgtypesnumeric_from_double

Chuyển đổi một kèo bóng đá c1 loại đôi thành số.

int pgtypesnumeric_from_double (Double D, Numeric *dst);

Hàm này chấp nhận một biến kèo bóng đá c1 loại đôi và lưu trữ kết quả trong biếnDSTĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi.

19802_19828

Chuyển đổi một kèo bóng đá c1 số loại thành gấp đôi.

int pgtypesnumeric_to_double (số *nv, double *dp)

19989_20054NVchỉ vào kèo bóng đá c1 kép màDPĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi, bao gồm cả tràn. Trên tràn, kèo bóng đá c1 toàn cầuerrnosẽ được đặt thànhpgtypes_num_overflowNgoài ra.

pgtypesnumeric_to_int

Chuyển đổi một kèo bóng đá c1 số loại thành int.

int pgtypesnumeric_to_int (số *nv, int *ip);

Hàm chuyển đổi giá trị số từ kèo bóng đá c1 đóNVchỉ vào kèo bóng đá c1 số nguyênIPĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi, bao gồm cả tràn. Trên tràn, kèo bóng đá c1 toàn cầuerrnosẽ được đặt thànhpgtypes_num_overflowNgoài ra.

pgtypesnumeric_to_long

Chuyển đổi một kèo bóng đá c1 số loại thành dài.

int pgtypesnumeric_to_long (số *nv, dài *lp);

Hàm chuyển đổi giá trị số từ kèo bóng đá c1 đóNVchỉ vào kèo bóng đá c1 số nguyên dài màLPĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi, bao gồm cả tràn. Trên tràn, kèo bóng đá c1 toàn cầuerrnosẽ được đặt thànhpgtypes_num_overflowNgoài ra.

pgtypesnumeric_to_decimal

Chuyển đổi một biến số kèo bóng đá c1 số thành thập phân.

int pgtypesnumeric_to_decimal (số *src, thập phân *dst);

Hàm chuyển đổi giá trị số từ kèo bóng đá c1 đóSRCchỉ vào kèo bóng đá c1 số thập phânDSTĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi, bao gồm cả tràn. Trên tràn, kèo bóng đá c1 toàn cầuerrnosẽ được đặt thànhpgtypes_num_overflowNgoài ra.

pgtypesnumeric_from_decimal

Chuyển đổi một kèo bóng đá c1 số thập phân thành số.

int pgtypesnumeric_from_decimal (thập phân *src, số *dst);

Hàm chuyển đổi giá trị thập phân từ kèo bóng đá c1 đóSRCchỉ vào kèo bóng đá c1 số đóDSTĐiểm đến. Nó trả về 0 khi thành công và -1 nếu xảy ra lỗi. Do loại thập phân được triển khai dưới dạng phiên bản giới hạn kèo bóng đá c1 loại số, tình trạng tràn không thể xảy ra với chuyển đổi này.

35.6.3. Loại kèo bóng đá c1

Loại kèo bóng đá c1 trong C cho phép các chương trình của bạn xử lý dữ liệu của kèo bóng đá c1 SQL. Nhìn thấyPhần 8.5Đối với loại tương đương trongPostgreSQLMáy chủ.

Các chức năng sau đây có thể được sử dụng để làm việc với loại kèo bóng đá c1:

pgtypesdate_from_timestamp

Trích xuất phần kèo bóng đá c1 từ dấu thời gian.

kèo bóng đá c1 pgtypesdate_from_timestamp (dấu thời gian dt);

Hàm nhận được dấu thời gian làm đối số duy nhất của nó và trả về phần kèo bóng đá c1 được trích xuất từ ​​dấu thời gian này.

pgtypesdate_from_asc

phân tích kèo bóng đá c1 từ biểu diễn văn bản của nó.

kèo bóng đá c1 pgtypesdate_from_asc (char *str, char ** endptr);

Hàm nhận được c char* chuỗistrvà một con trỏ tới c char* chuỗiendptr. Hiện tại ECPG luôn phân tích chuỗi hoàn chỉnh và do đó hiện tại không hỗ trợ lưu trữ địa chỉ kèo bóng đá c1 ký tự không hợp lệ đầu tiên trong*EndPtr. Bạn có thể đặt một cách an toànendptrđến null.

Lưu ý rằng hàm luôn giả định kèo bóng đá c1 có định dạng MDY và ​​hiện tại không có biến nào để thay đổi trong ECPG.

Bảng 35.2Hiển thị các định dạng đầu vào được phép.

Bảng 35.2. Định dạng đầu vào hợp lệ chopgtypesdate_from_asc

INPUT result
kèo bóng đá c1 8 tháng 1 năm 1999 kèo bóng đá c1 8 tháng 1 năm 1999
1999-01-08 kèo bóng đá c1 8 tháng 1 năm 1999
1/8/1999 kèo bóng đá c1 8 tháng 1 năm 1999
1/18/1999 kèo bóng đá c1 18 tháng 1 năm 1999
01/02/03 kèo bóng đá c1 1 tháng 2 năm 2003
1999-JAN-08 kèo bóng đá c1 8 tháng 1 năm 1999
Jan-08-1999 kèo bóng đá c1 8 tháng 1 năm 1999
08-Jan-1999 kèo bóng đá c1 8 tháng 1 năm 1999
99-JAN-08 kèo bóng đá c1 8 tháng 1 năm 1999
08-Jan-99 kèo bóng đá c1 8 tháng 1 năm 1999
08-JAN-06 kèo bóng đá c1 8 tháng 1 năm 2006
Jan-08-99 kèo bóng đá c1 8 tháng 1 năm 1999
19990108 ISO 8601; kèo bóng đá c1 8 tháng 1 năm 1999
990108 ISO 8601; kèo bóng đá c1 8 tháng 1 năm 1999
1999.008 năm và kèo bóng đá c1 trong năm
J2451187 kèo bóng đá c1 Julian
kèo bóng đá c1 8 tháng 1, 99 trước Công nguyên năm 99 trước kỷ nguyên chung

pgtypesdate_to_asc

Trả về biểu diễn văn bản của biến kèo bóng đá c1.

char *pgtypesdate_to_asc (kèo bóng đá c1 ddate);

Hàm nhận kèo bóng đá c1ddate27600_276621999-01-18, tức là, trongYYYY-MM-DDĐịnh dạng. Kết quả phải được giải phóng bằngpgtypeschar_free ().

pgtypesdate_julmdy

Trích xuất các giá trị cho kèo bóng đá c1, tháng và năm từ một biến của loại kèo bóng đá c1.

void pgtypesdate_julmdy (kèo bóng đá c1 d, int *mdy);

Hàm nhận kèo bóng đá c1Dvà một con trỏ tới một mảng gồm 3 giá trị số nguyênmdy. Tên kèo bóng đá c1 cho biết thứ tự tuần tự:mdy [0]sẽ được đặt thành số lượng kèo bóng đá c1 tháng,mdy [1]sẽ được đặt thành giá trị của kèo bóng đá c1 vàmdy [2]sẽ chứa năm.

pgtypesdate_mdyjul

Tạo giá trị kèo bóng đá c1 từ một mảng gồm 3 số nguyên chỉ định kèo bóng đá c1, tháng và năm của kèo bóng đá c1.

void pgtypesdate_mdyjul (int *mdy, kèo bóng đá c1 *jdate);

Hàm nhận được mảng kèo bóng đá c1 3 số nguyên (mdy) là đối số đầu tiên của nó và là đối số thứ hai của nó, một con trỏ tới một biến của loại kèo bóng đá c1 sẽ giữ kết quả của hoạt động.

pgtypesdate_dayofweek

Trả về một số đại diện cho kèo bóng đá c1 trong tuần cho một giá trị kèo bóng đá c1.

int pgtypesdate_dayofweek (kèo bóng đá c1 d);

Hàm nhận được biến kèo bóng đá c1DLà đối số duy nhất của nó và trả về một số nguyên chỉ ra kèo bóng đá c1 trong tuần cho kèo bóng đá c1 này.

  • 0 - Chủ nhật

  • 1 - Thứ Hai

  • 2 - Thứ ba

  • 3 - Thứ tư

  • 4 - Thứ năm

  • 5 - Thứ sáu

  • 6 - Thứ bảy

pgtypesdate_today

Nhận kèo bóng đá c1 hiện tại.

void pgtypesdate_today (kèo bóng đá c1 *d);

30145_30199D) rằng nó đặt thành kèo bóng đá c1 hiện tại.

pgtypesdate_fmt_asc

Chuyển đổi một biến số kèo bóng đá c1 thành biểu diễn văn bản của nó bằng mặt nạ định dạng.

int pgtypesdate_fmt_asc (kèo bóng đá c1 ddate, char *fmtstring, char *outbuf);

Hàm nhận kèo bóng đá c1 để chuyển đổi (ddate), Mặt nạ định dạng (FMTSTRING) và chuỗi sẽ giữ biểu diễn văn bản của kèo bóng đá c1 (Outbuf).

Khi thành công, 0 được trả về và giá trị âm nếu xảy ra lỗi.

Các nghĩa đen sau đây là các nhà xác định trường bạn có thể sử dụng:

  • 31099_31103- Số lượng của kèo bóng đá c1 trong tháng.

  • mm31213_31254

  • yy- Số lượng kèo bóng đá c1 năm dưới dạng số hai chữ số.

  • Yyyy- Số lượng kèo bóng đá c1 năm dưới dạng số bốn chữ số.

  • DDD- Tên của kèo bóng đá c1 (viết tắt).

  • MMM- Tên kèo bóng đá c1 tháng (viết tắt).

Tất cả các ký tự khác được sao chép 1: 1 vào chuỗi đầu ra.

Bảng 35.3Cho biết một vài định dạng có thể. Điều này sẽ cho bạn một ý tưởng về cách sử dụng chức năng này. Tất cả các dòng đầu ra đều dựa trên cùng một kèo bóng đá c1: 23 tháng 11 năm 1959.

Bảng 35.3. Định dạng đầu vào hợp lệ chopgtypesdate_fmt_asc

Định dạng result
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 nov. 23, 1959
MMM DD YYYY 23 tháng 11 năm 1959
Yyyy DD MM 1959 23 11
DDD, Mmm. DD, Yyyy Thứ Hai, kèo bóng đá c1 23 tháng 11 năm 1959
(DDD) Mmm. DD, Yyyy (Thứ Hai) kèo bóng đá c1 23 tháng 11 năm 1959

pgtypesdate_defmt_asc

Sử dụng mặt nạ định dạng để chuyển đổi Cchar*Chuỗi thành giá trị của loại kèo bóng đá c1.

int pgtypesdate_defmt_asc (kèo bóng đá c1 *d, char *fmt, char *str);

Hàm nhận được một con trỏ tới giá trị kèo bóng đá c1 sẽ giữ kết quả của hoạt động (D), Mặt nạ định dạng để sử dụng để phân tích kèo bóng đá c1 (FMT) và chuỗi c char* chứa biểu diễn văn bản của kèo bóng đá c1 (str34547_34772YYhoặcYyyyChỉ ra vị trí kèo bóng đá c1 năm,mmĐể chỉ ra vị trí kèo bóng đá c1 tháng vàDDĐể chỉ ra vị trí của kèo bóng đá c1.

Bảng 35.435184_35276

Bảng 35.4. Định dạng đầu vào hợp lệ chordefmtdate

Định dạng chuỗi result
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 Mar-12-1967 1967-03-12
yy/mm/dd 1954, kèo bóng đá c1 3 tháng 2 1954-02-03
mmm.dd.yyy 041269 1969-04-12
yy/mm/dd Vào năm 2525, vào tháng 7, nhân loại sẽ còn sống vào kèo bóng đá c1 thứ 28 2525-07-28
DD-MM-YY Tôi đã nói vào kèo bóng đá c1 28 tháng 7 năm 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 kèo bóng đá c1 28 tháng 10 năm 1975 1975-10-28
mmddyy kèo bóng đá c1 14 tháng 11 năm 1985 1985-11-14

35.6.4. Loại dấu thời gian

Loại dấu thời gian trong C cho phép các chương trình kèo bóng đá c1 bạn xử lý dữ liệu kèo bóng đá c1 dấu thời gian loại SQL. Nhìn thấyPhần 8.538261_38295POSTGRESQLMáy chủ.

Các chức năng sau đây có thể được sử dụng để hoạt động với loại dấu thời gian:

pgtypestimestamp_from_asc

phân tích dấu thời gian từ biểu diễn văn bản kèo bóng đá c1 nó thành một biến dấu thời gian.

38709_38773

Hàm nhận được chuỗi để phân tích cú pháp (str) và một con trỏ tới c char* (endptr). Hiện tại ECPG luôn phân tích chuỗi hoàn chỉnh và do đó hiện tại không hỗ trợ lưu trữ địa chỉ kèo bóng đá c1 ký tự không hợp lệ đầu tiên trong*EndPtr. Bạn có thể đặt một cách an toànendptrđến null.

Hàm trả về dấu thời gian phân tích cú pháp thành công. Trên lỗi,pgtypesinvalidtimestampđược trả về vàerrnođược đặt thànhpgtypes_ts_bad_timestamp. Nhìn thấypgtypesinvalidtimestampĐối với các ghi chú quan trọng về giá trị này.

Nói chung, chuỗi đầu vào có thể chứa bất kỳ sự kết hợp nào của thông số kỹ thuật kèo bóng đá c1 được phép, ký tự khoảng trắng và thông số kỹ thuật thời gian được phép. Lưu ý rằng các múi giờ không được ECPG hỗ trợ. Nó có thể phân tích chúng nhưng không áp dụng bất kỳ tính toán nào nhưPOSTGRESQLMáy chủ làm chẳng hạn. Các nhà xác định thời gian bị loại bỏ âm thầm.

Bảng 35.5chứa một vài ví dụ cho các chuỗi đầu vào.

40284_40332pgtypestimeStamp_from_asc

INPUT result
1999-01-08 04:05:06 1999-01-08 04:05:06
8 tháng 1 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 (người xác định múi giờ bị bỏ qua)
J2451187 04: 05-08: 00 1999-01-08 04:05:00 (Trình xác định múi giờ bị bỏ qua)

pgtypestimestamp_to_asc

Chuyển đổi một kèo bóng đá c1 thành chuỗi c char*.

41465_41515

Hàm nhận được dấu thời gianTSTAMPLà đối số duy nhất kèo bóng đá c1 nó và trả về một chuỗi được phân bổ có chứa biểu diễn văn bản kèo bóng đá c1 dấu thời gian. Kết quả phải được giải phóng bằngpgtypeschar_free ().

Truy xuất dấu thời gian hiện tại.

41982_42029

Hàm lấy dấu thời gian hiện tại và lưu nó vào kèo bóng đá c1 dấu thời gian đótsĐiểm đến.

pgtypestimestamp_fmt_asc

Chuyển đổi kèo bóng đá c1 dấu thời gian thành c char c* Sử dụng mặt nạ định dạng.

int pgtypestimestamp_fmt_asc (dấu thời gian *ts, char *oput

Hàm nhận được một con trỏ tới dấu thời gian để chuyển đổi dưới dạng đối số đầu tiên kèo bóng đá c1 nó (TS), một con trỏ tới bộ đệm đầu ra (OUTPUT), Độ dài tối đa đã được phân bổ cho bộ đệm đầu ra (str_len42780_42831FMTSTR).

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

Bạn có thể sử dụng các nhà xác định định dạng sau cho mặt nạ định dạng. Các định dạng xác định định dạng là cùng một định dạng được sử dụng trongstrftimechức năng trongLIBC. Bất kỳ trình xác định không định dạng nào sẽ được sao chép vào bộ đệm đầu ra.

  • %A- được thay thế bằng đại diện quốc gia của toàn bộ tên kèo bóng đá c1 trong tuần.

  • %A- được thay thế bằng đại diện quốc gia kèo bóng đá c1 tên tuần được viết tắt.

  • %B- được thay thế bằng đại diện quốc gia kèo bóng đá c1 tên đầy đủ.

  • %B- được thay thế bằng đại diện quốc gia kèo bóng đá c1 tên tháng viết tắt.

  • %C- được thay thế bởi (năm / 100) dưới dạng số thập phân; các chữ số đơn được đi trước bằng số 0.

  • %C- được thay thế bằng đại diện quốc gia về thời gian và kèo bóng đá c1.

  • %D- tương đương với%m/%d/%y.

  • %D44336_44405

  • %E* %O*- Tiện ích mở rộng địa phương POSIX. Các chuỗi%EC %EC %Ex %Ex %EY %EY %OD %OE %OH %OI %OM %OM %OS %OU %OU %OV %OW %OW %OYđược cho là cung cấp các biểu diễn thay thế.

    Ngoài ra%OBđược triển khai để thể hiện tên tháng thay thế (được sử dụng độc lập, không có kèo bóng đá c1 được đề cập).

  • %E- được thay thế bằng kèo bóng đá c1 của tháng dưới dạng số thập phân (1-31); các chữ số đơn được đi trước trống.

  • %F- tương đương với%Y-%M-%D.

  • %g- được thay thế bằng một năm dưới dạng số thập phân với thế kỷ. Năm nay là năm có phần lớn hơn trong tuần (thứ Hai là kèo bóng đá c1 đầu tiên của tuần).

  • %g- được thay thế bằng cùng năm với%g, nhưng như một số thập phân không có thế kỷ (00-99).

  • %H-được thay thế bằng giờ (đồng hồ 24 giờ) dưới dạng số thập phân (00-23).

  • %H- giống như%B.

  • %I-được thay thế bằng giờ (đồng hồ 12 giờ) dưới dạng số thập phân (01-12).

  • %J- được thay thế bằng kèo bóng đá c1 trong năm dưới dạng số thập phân (001-366).

  • %K-được thay thế bằng giờ (đồng hồ 24 giờ) dưới dạng số thập phân (0-23); các chữ số đơn được đi trước trống.

  • %L-được thay thế bằng giờ (đồng hồ 12 giờ) dưới dạng số thập phân (1-12); các chữ số đơn được đi trước trống.

  • %m- được thay thế bằng phút dưới dạng số thập phân (00-59).

  • %m- được thay thế bằng tháng dưới dạng số thập phân (01-12).

  • %N- được thay thế bằng một dòng mới.

  • %O*- giống như%E*.

  • %P- được thay thế bằng đại diện quốc gia kèo bóng đá c1Mạnhante meridiem47592_4759547600_47606POST MERIDIEMHàngkhi thích hợp.

  • %R- tương đương với%H:%m.

  • %R- tương đương với%I:%m:%s%p.

  • %s- được thay thế bằng số thứ hai dưới dạng số thập phân (00-60).

  • %s- được thay thế bằng số giây kể từ kỷ nguyên, utc.

  • %T- tương đương với%H:%M:%s

  • %T- được thay thế bằng một tab.

  • %u- được thay thế bằng số tuần của năm (Chủ nhật là kèo bóng đá c1 đầu tiên của tuần) dưới dạng số thập phân (00-53).

  • %U- được thay thế bằng kèo bóng đá c1 trong tuần (thứ Hai là kèo bóng đá c1 đầu tiên của tuần) dưới dạng số thập phân (1-7).

  • %V- được thay thế bằng số tuần của năm (thứ Hai là kèo bóng đá c1 đầu tiên của tuần) dưới dạng số thập phân (01-53). Nếu tuần chứa kèo bóng đá c1 1 tháng 1 có bốn kèo bóng đá c1 trở lên trong năm mới, thì đó là tuần 1; Nếu không thì đó là tuần cuối cùng của năm trước và tuần tiếp theo là Tuần 1.

  • %V- tương đương với%e-%b-%y.

  • %W- được thay thế bằng số tuần của năm (thứ Hai là kèo bóng đá c1 đầu tiên của tuần) dưới dạng số thập phân (00-53).

  • %W- được thay thế bằng kèo bóng đá c1 trong tuần (Chủ nhật là kèo bóng đá c1 đầu tiên của tuần) dưới dạng số thập phân (0-6).

  • %x- được thay thế bằng đại diện quốc gia thời đó.

  • %x- được thay thế bằng đại diện quốc gia của kèo bóng đá c1.

  • %y- được thay thế bằng năm bằng thế kỷ như một số thập phân.

  • %y- được thay thế bởi năm không có thế kỷ như một số thập phân (00-99).

  • %Z- được thay thế bằng tên múi giờ.

  • %Z- được thay thế bằng phần bù múi giờ từ UTC; Một dấu hiệu cộng với dấu hiệu là viết tắt của phía đông UTC, một dấu hiệu trừ về phía tây UTC, giờ và phút theo sau với hai chữ số và không có dấu phân cách giữa chúng (dạng phổ biến cho các tiêu đề kèo bóng đá c1 RFC 822).

  • %+- được thay thế bằng đại diện quốc gia của kèo bóng đá c1 và giờ.

  • %-*- Tiện ích mở rộng GNU LIBC. Không thực hiện bất kỳ phần đệm nào khi thực hiện đầu ra số.

  • $ _* - Tiện ích mở rộng GNU LIBC. Chỉ định rõ ràng không gian để đệm.

  • %0*- Tiện ích mở rộng GNU LIBC. Chỉ định rõ ràng số 0 cho phần đệm.

  • %%- được thay thế bằng%.

pgtypestimestamp_sub

Trừ một dấu thời gian từ cái khác và lưu kết quả trong một biến kèo bóng đá c1 khoảng thời gian.

51364_51437

Hàm sẽ trừ kèo bóng đá c1 dấu thời gian đóTS2Các điểm từ kèo bóng đá c1 dấu thời gian đóTS1Điểm đến và sẽ lưu trữ kết quả trong kèo bóng đá c1 khoảng thời gianIVĐiểm đến.

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

pgtypestimestamp_defmt_asc

Phân tích giá trị dấu thời gian từ biểu diễn văn bản kèo bóng đá c1 nó bằng cách sử dụng mặt nạ định dạng.

int pgtypestimestamp_defmt_asc (char *str, char *fmt, dấu thời gian *d);

Hàm nhận được biểu diễn văn bản kèo bóng đá c1 dấu thời gian trong biếnstrcũng như mặt nạ định dạng để sử dụng trong kèo bóng đá c1FMT52328_52379DĐiểm đến.

Nếu mặt nạ định dạngFMTlà null, chức năng sẽ quay trở lại mặt nạ định dạng mặc định là%y-%m-%d%h:%m:%s.

Đây là hàm ngược lạipgtypestimestamp_fmt_asc. Xem tài liệu ở đó để tìm hiểu về các mục mặt nạ có thể có.

pgtypestimestamp_add_interval

Thêm kèo bóng đá c1 khoảng vào kèo bóng đá c1 dấu thời gian.

int pgtypestimestamp_add_interval (dấu thời gian *tin, khoảng *span, dấu thời gian

Hàm nhận được một con trỏ tới kèo bóng đá c1 dấu thời giantinvà một con trỏ tới một kèo bóng đá c1 khoảngspan. Nó thêm khoảng thời gian vào dấu thời gian và lưu dấu thời gian kết quả trong kèo bóng đá c1 đóToutĐiểm đến.

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

pgtypestimestamp_sub_interval

Trừ một kèo bóng đá c1 khoảng từ kèo bóng đá c1 dấu thời gian.

int pgtypestimestamp_sub_interval (dấu thời gian *tin, khoảng *span, thời gian

Hàm trừ kèo bóng đá c1 khoảng thời gian đóspanchỉ vào từ kèo bóng đá c1 dấu thời gian đótin54046_54103ToutĐiểm đến.

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

35.6.5. Loại khoảng

Loại khoảng trong C cho phép các chương trình kèo bóng đá c1 bạn xử lý dữ liệu kèo bóng đá c1 khoảng thời gian loại SQL. Nhìn thấyPhần 8.5cho loại tương đương trongPostgreSQLMáy chủ.

Các chức năng sau đây có thể được sử dụng để hoạt động với loại khoảng:

pgtypesInterval_new

Trả lại một con trỏ cho kèo bóng đá c1 khoảng thời gian mới được phân bổ.

Khoảng thời gian *PGTyPesInterval_New (void);
pgtypesInterval_free

Phát hành bộ nhớ kèo bóng đá c1 biến khoảng thời gian được phân bổ trước đó.

55290_55335
pgtypesInterval_from_asc

phân tích khoảng thời gian từ biểu diễn văn bản kèo bóng đá c1 nó.

Interval *pgtypesInterval_from_asc (char *str, char ** endptr);

Hàm phân tích chuỗi đầu vàostrvà trả lại một con trỏ cho một biến khoảng được phân bổ. Hiện tại ECPG luôn phân tích chuỗi hoàn chỉnh và do đó hiện tại không hỗ trợ lưu trữ địa chỉ kèo bóng đá c1 ký tự không hợp lệ đầu tiên trong*EndPtr. Bạn có thể đặt một cách an toànendptrđến null.

pgtypesInterval_to_asc

Chuyển đổi một biến số loại thành biểu diễn văn bản kèo bóng đá c1 nó.

char *pgtypesInterval_to_asc (khoảng *span);

Hàm chuyển đổi kèo bóng đá c1 khoảng đóspanchỉ vào c char*. Đầu ra trông giống như ví dụ này:@ 1 kèo bóng đá c1 12 giờ 59 phút 10 giây. Kết quả phải được giải phóng bằngpgtypeschar_free ().

pgtypesInterval_copy

Sao chép một biến kèo bóng đá c1 khoảng thời gian.

56750_56818

Hàm sao chép kèo bóng đá c1 khoảng thời gianINTVLSRCchỉ vào kèo bóng đá c1 đóintvldestĐiểm đến. Lưu ý rằng bạn cần phân bổ bộ nhớ cho kèo bóng đá c1 đích trước đó.

35.6.6. Loại thập phân

Loại thập phân tương tự như loại số. Tuy nhiên, nó được giới hạn ở độ chính xác tối đa là 30 chữ số quan trọng. Trái ngược với loại số chỉ có thể được tạo trên đống, loại thập phân có thể được tạo ra trên ngăn xếp hoặc trên đống (bằng các hàmpgtypesdecimal_newpgtypesdecimal_free). Có rất nhiều chức năng khác liên quan đến loại thập phân trongInformixChế độ tương thích được mô tả trongPhần 35.15.

57928_58030libcompatThư viện.

pgtypesdecimal_new

Yêu cầu một con trỏ tới kèo bóng đá c1 số thập phân mới được phân bổ.

thập phân *pgtypesdecimal_new (void);
pgtypesdecimal_free

miễn phí một loại thập phân, giải phóng tất cả bộ nhớ kèo bóng đá c1 nó.

void pgtypesdecimal_free (thập phân *var);

35.6.7. Các giá trị errno kèo bóng đá c1 pgtypeslib

pgtypes_num_bad_numeric

Một đối số phải chứa một biến số (hoặc điểm đến một biến số) nhưng trên thực tế, biểu diễn trong bộ nhớ kèo bóng đá c1 nó không hợp lệ.

pgtypes_num_overflow

xảy ra tràn. Vì loại số có thể xử lý độ chính xác gần như tùy ý, việc chuyển đổi một kèo bóng đá c1 số thành các loại khác có thể gây ra tràn.

pgtypes_num_underflow

Một dòng chảy xảy ra. Vì loại số có thể xử lý độ chính xác gần như tùy ý, việc chuyển đổi một kèo bóng đá c1 số thành các loại khác có thể gây ra dòng chảy.

pgtypes_num_divide_zero

Một bộ phận theo 0 đã được cố gắng.

PGTYPES_DATE_BAD_DATE

Chuỗi kèo bóng đá c1 không hợp lệ đã được chuyển chopgtypesdate_from_ascchức năng.

pgtypes_date_err_eargs

Các đối số không hợp lệ đã được truyền chopgtypesdate_defmt_ascchức năng.

pgtypes_date_err_enoshortdate

Mã thông báo không hợp lệ trong chuỗi đầu vào đã được tìm thấy bởipgtypesdate_defmt_ascchức năng.

pgtypes_intvl_bad_interval

Chuỗi khoảng thời gian không hợp lệ đã được truyền chopgtypesInterval_from_ascHàm hoặc giá trị khoảng không hợp lệ đã được chuyển chopgtypesInterval_to_ascchức năng.

pgtypes_date_err_enotdmy

Có sự không phù hợp trong bài tập kèo bóng đá c1/tháng/năm trongpgtypesdate_defmt_ascchức năng.

pgtypes_date_bad_day

Một kèo bóng đá c1 không hợp lệ trong tháng được tìm thấy bởipgtypesdate_defmt_ascchức năng.

pgtypes_date_bad_month

61222_61264pgtypesdate_defmt_ascchức năng.

pgtypes_ts_bad_timestamp

Chuỗi dấu thời gian không hợp lệ được truyền chopgtypestimeStamp_from_asc61533_61594pgtypestimestamp_to_ascchức năng.

pgtypes_ts_err_einftime

Giá trị dấu thời gian vô hạn đã gặp phải trong bối cảnh không thể xử lý nó.

35.6.8. Hằng số đặc biệt kèo bóng đá c1 pgtypeslib

pgtypesinvalidtimestamp

Giá trị thời gian loại đại diện cho dấu thời gian không hợp lệ. Điều này được trả về bởi chức năngpgtypestimestamp_from_ascVề lỗi phân tích cú pháp. Lưu ý rằng do biểu diễn nội bộ kèo bóng đá c1Dấu thời gianKiểu dữ liệu,pgtypesinvalidtimestampcũng là một dấu thời gian hợp lệ cùng một lúc. Nó được đặt thành1899-12-31 23:59:59. Để phát hiện lỗi, hãy đảm bảo rằng ứng dụng kèo bóng đá c1 bạn không chỉ kiểm trapgtypesinvalidtimestampnhưng cũng choerrno! = 0Sau mỗi cuộc gọi đếnpgtypestimestamp_from_asc.