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 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài kèo bóng đá cúp c2 này dành cho phiên bản không được hỗ trợ của 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ế.

9.8. Kiểu dữ liệu Chức năng định kèo bóng đá cúp c2

ThePostgreSQLCác chức năng định kèo bóng đá cúp c2 cung cấp một bộ công cụ mạnh mẽ để chuyển đổi các loại dữ liệu khác nhau (ngày/giờ, số nguyên, điểm nổi, số) thành các chuỗi được định kèo bóng đá cúp c2 và chuyển đổi từ các chuỗi được định kèo bóng đá cúp c2 sang các loại dữ liệu cụ thể.Bảng 9-21liệt kê chúng. Tất cả các chức năng này tuân theo một quy ước gọi chung: Đối số đầu tiên là giá trị được định kèo bóng đá cúp c2 và đối số thứ hai là một mẫu xác định định kèo bóng đá cúp c2 đầu ra hoặc đầu vào.

một cuộc tranh luận đơnTO_TIMESTAMPHàm cũng có sẵn; nó chấp nhận mộtđộ chính xác gấp đôiĐối số và chuyển đổi từ Epoch Unix (giây kể từ 1970-01-01 00: 00: 00+00) thànhdấu thời gian với múi giờ. (Số nguyênEpochs UNIX được sử dụng hoàn toàn đếnDouble Precision.)

Bảng 9-21. Định kèo bóng đá cúp c2 chức năng

chức năng Return Type Mô tả Ví dụ
to_char (Dấu thời gian, 12604_12610) Text Chuyển đổi thời gian thành chuỗi to_char (current_timestamp, 'hh12: mi: ss')
to_char (Khoảng, Text) Text 12964_12992 to_char (khoảng '15h 2m 12s', 'hh24: mi: ss')
to_char (int, Text) Text chuyển đổi số nguyên thành chuỗi to_char (125, '999')
to_char(Double Precision, Text) Text Chuyển đổi độ chính xác thực/gấp đôi thành chuỗi to_char (125.8 :: Real, '999d9')
to_char (Số, Text) Text Chuyển đổi số thành chuỗi to_char (-125.8, '999d99s')
to_date (Text, Text) ngày Chuyển đổi chuỗi thành ngày to_date ('05 tháng 12 năm 2000 ',' dd mon yyyy ')
to_number (Text, Text) Số chuyển đổi chuỗi thành số to_number ('12, 454.8- ',' 99G999D9S ')
to_timestamp (Text, Text) dấu thời gian với múi giờ Chuyển đổi chuỗi thành tem thời gian to_timestamp ('05 tháng 12 năm 2000 ',' dd mon yyyy ')
to_timestamp (Double Precision) dấu thời gian với múi giờ Chuyển đổi Epoch UNIX sang tem thời gian to_timestamp (1284352323)

trong Ato_charChuỗi mẫu đầu ra, có một số mẫu nhất định được nhận kèo bóng đá cúp c2 và thay thế bằng dữ liệu được định kèo bóng đá cúp c2 phù hợp dựa trên giá trị đã cho. Bất kỳ văn bản nào không phải là một mẫu mẫu được sao chép nguyên văn. Tương tự, trong chuỗi mẫu đầu vào (cho các hàm khác), các mẫu mẫu xác định các giá trị được cung cấp bởi chuỗi dữ liệu đầu vào.

Bảng 9-22Hiển thị các mẫu mẫu có sẵn cho các giá trị ngày và thời gian định kèo bóng đá cúp c2.

Bảng 9-22. Mẫu mẫu cho định kèo bóng đá cúp c2 ngày/giờ

mẫu Mô tả
HH giờ trong ngày (01-12)
HH12 Giờ trong ngày (01-12)
HH24 Giờ trong ngày (00-23)
MI Phút (00-59)
SS Thứ hai (00-59)
MS millisecond (000-999)
US microsecond (000000-999999)
SSSS Thứ hai quá nửa đêm (0-86399)
AM, AM, PMhoặcPM Chỉ báo Meridiem (không có thời gian)
A.M., A.M., p.m.hoặcp.m. Chỉ báo Meridiem (có thời gian)
y, yyy Năm (4 chữ số trở lên) với dấu phẩy
Yyyy Năm (4 chữ số trở lên)
YYY 3 chữ số cuối cùng của năm
YY 2 chữ số cuối cùng của năm
Y chữ số cuối cùng của năm
Iyyy ISO 8601 Năm đánh dấu tuần (4 chữ số trở lên)
IYY 17610_17657
IY 2 chữ số cuối cùng của ISO 8601 năm đánh dấu tuần
i Chữ số cuối cùng của ISO 8601 năm đánh dấu tuần
BC, BC, ADhoặcAD Chỉ số ERA (không có thời gian)
B.C., B.C., A.D.hoặcA.D. Chỉ báo ERA (có thời gian)
tháng 18279_18333
tháng Tên tháng được viết hoa đầy đủ (trống rỗng đến 9 ký tự
​​tháng 18506_18560
Mon Tên tháng trên viết tắt (3 ký tự bằng tiếng Anh, độ dài cục bộ khác nhau)
Mon Tên tháng viết tắt (3 ký tự bằng tiếng Anh, độ dài cục bộ khác nhau)
Mon 18892_18972
mm Số tháng (01-12)
ngày 19107_19159
ngày 19216_19269
ngày 19326_19378
dy 19434_19512
dy Tên ngày viết tắt (3 ký tự bằng tiếng Anh, độ dài cục bộ khác nhau)
DY 19703_19781
DDD Ngày trong năm (001-366)
IDDD Ngày của ISO 8601 năm đánh dấu tuần (001-371; Ngày 1 của năm là Thứ Hai của Tuần ISO đầu tiên)
DD Ngày của tháng (01-31)
D Ngày trong tuần, Chủ nhật (1) đến thứ bảy (7)
id ISO 8601 Ngày trong tuần, Thứ Hai (1) đến Chủ nhật (7)
W tuần trong tháng (1-5) (tuần đầu tiên bắt đầu vào ngày đầu tiên của tháng)
WW Số năm của năm (1-53) (tuần đầu tiên bắt đầu vào ngày đầu tiên của năm)
IW Số tuần của ISO 8601 năm đánh số tuần (01-53; Thứ Năm đầu tiên của năm là vào Tuần 1)
CC Thế kỷ (2 chữ số) (thế kỷ hai mươi mốt bắt đầu vào năm 2001-01-01)
J Ngày Julian (Ngày số nguyên kể từ ngày 24 tháng 11, 4714 trước Công nguyên lúc nửa đêm UTC)
Q quý (bị bỏ qua bởito_dateto_timestamp)
rm Tháng trong chữ số La Mã trường hợp cao hơn (I-XII; I = tháng 1)
rm Tháng trong chữ số chữ số La Mã (I-XII; I = tháng 1)
TZ Vòng chữ viết tắt vùng trên (chỉ được hỗ trợ trongto_char)
TZ chữ viết tắt theo thời gian thường xuyên (chỉ được hỗ trợ trongto_char)
của Offset vùng thời gian từ UTC (chỉ được hỗ trợ trongto_char)

Bộ điều chỉnh có thể được áp dụng cho bất kỳ mẫu mẫu nào để thay đổi hành vi của nó. Ví dụ,fmmonththángmẫu vớiFMModifier.Bảng 9-23Hiển thị các mẫu sửa đổi cho định kèo bóng đá cúp c2 ngày/giờ.

Bảng 9-23. Bộ sửa đổi mẫu mẫu cho định kèo bóng đá cúp c2 ngày/giờ

Modifier Mô tả Ví dụ
FMtiền tố Chế độ điền (triệt tiêu các khoảng trống và phần đệm đệm hàng đầu) fmmonth
ThHậu tố Hậu tố số chữ số trên ddth, ví dụ:12
THHậu tố Hậu tố số chữ thường DDTH, ví dụ:12
fxtiền tố Định kèo bóng đá cúp c2 cố định Tùy chọn toàn cầu (xem Ghi chú sử dụng) FX tháng DD ngày
TMtiền tố Chế độ dịch (in tên ngày và tháng được bản địa hóa dựa trênLC_TIME) tmmonth
spHậu tố Chế độ chính tả (không được triển khai) DDSP

Ghi chú sử dụng cho định kèo bóng đá cúp c2 ngày/giờ:

  • FMtriệt tiêu các số 0 hàng đầu và các khoảng trống theo dõi nếu không sẽ được thêm vào để làm cho đầu ra của một mẫu có chiều rộng cố định. TRONGPOSTGRESQL, FMChỉ sửa đổi thông số kỹ thuật tiếp theo, trong khi ở OracleFMảnh hưởng đến tất cả các thông số kỹ thuật tiếp theo và lặp lạiFMBộ điều chỉnh chuyển đổi chế độ điền vào.

  • TMKhông bao gồm các khoảng trống kéo dài.

  • to_timestampto_dateBỏ qua nhiều khoảng trống trong chuỗi đầu vào trừ khifxTùy chọn được sử dụng. Ví dụ,TO_TIMESTAMP ('2000 Jun', 'Yyyy Mon')hoạt động, nhưngto_timestamp ('2000 tháng 6', 'fxyyyy mon')Trả về lỗi vìto_timestampChỉ mong đợi một không gian.fxphải được chỉ định là mục đầu tiên trong mẫu.

  • to_timestampto_datetồn tại để xử lý các định kèo bóng đá cúp c2 đầu vào không thể được chuyển đổi bằng cách đúc đơn giản. Các chức năng này giải thích đầu vào tự do, với kiểm tra lỗi tối thiểu. Trong khi chúng tạo ra đầu ra hợp lệ, việc chuyển đổi có thể mang lại kết quả bất ngờ. Ví dụ: nhập vào các chức năng này không bị hạn chế bởi các phạm vi bình thường, do đó25277_25309return2014-01-17thay vì gây ra lỗi. Đúc không có hành vi này.

  • Văn bản thông thường được phép trongto_charMẫu và sẽ được đầu ra theo nghĩa đen. Bạn có thể đặt một chuỗi con trong các trích dẫn kép để buộc nó được hiểu là văn bản theo nghĩa đen ngay cả khi nó chứa các từ khóa mẫu. Ví dụ, trong'"Hello Year" Yyyy', TheYyyysẽ được thay thế bằng dữ kèo bóng đá cúp c2 năm, nhưng đơn lẻyinnămsẽ không. TRONGto_date, to_numberto_timestamp, Chuỗi được trích xuất kép bỏ qua số lượng ký tự đầu vào có trong chuỗi, ví dụ:"XX"Bỏ qua hai ký tự đầu vào.

  • Nếu bạn muốn có báo giá kép trong đầu ra, bạn phải đi trước nó với một dấu gạch chéo ngược, ví dụ'\ "Yyyy tháng \"'.

  • Nếu đặc tả định kèo bóng đá cúp c2 năm nhỏ hơn bốn chữ số, ví dụ:YYYvà năm được cung cấp dưới bốn chữ số, năm sẽ được điều chỉnh để gần nhất với năm 2020, ví dụ:95trở thành 1995.

  • TheYyyyChuyển đổi từ chuỗi thànhDấu thời gianhoặcngàyCó hạn chế khi xử lý năm với hơn 4 chữ số. Bạn phải sử dụng một số ký tự hoặc mẫu không chữ số sauYyyy, nếu không, năm luôn được hiểu là 4 chữ số. Ví dụ (với năm 20000):to_date ('20001131', 'yyyymmdd')sẽ được hiểu là một năm 4 chữ số; Thay vào đó, hãy sử dụng một thiết bị phân tách không chữ số sau năm, nhưto_date ('2000-1131', 'yyyy-mmdd')hoặc27211_27247.

  • Trong các chuyển đổi từ chuỗi sangDấu thời gianhoặcngày, TheCC27394_27438YYY, Yyyyhoặcy, yyyTrường. Nếu nhưCCđược sử dụng vớiYYhoặcYSau đó, năm được tính là năm trong thế kỷ quy định. Nếu thế kỷ được chỉ định nhưng năm không, năm đầu tiên của thế kỷ được giả định.

  • Một ngày đánh số tuần ISO 8601 (khác với ngày Gregorian) có thể được chỉ định choto_timestampto_dateTheo một trong hai cách:

    • Năm, số tuần và ngày trong tuần: Ví dụto_date ('2006-42-4', 'iyyy-iw-id')Trả về ngày2006-10-19. Nếu bạn bỏ qua ngày trong tuần, nó được coi là 1 (Thứ Hai).

    • 28254_28290to_date ('2006-291', 'iyyy-iddd')Cũng trả về2006-10-19.

    Cố gắng nhập một ngày bằng cách sử dụng hỗn hợp các trường đánh số ISO 8601 và các trường ngày Gregorian là vô nghĩa và sẽ gây ra lỗi. Trong bối cảnh của một năm đánh dấu ISO 8601 trong tuần, khái niệm về A"Tháng"hoặc"Ngày trong tháng"Không có ý nghĩa. Trong bối cảnh của một năm Gregorian, tuần ISO không có ý nghĩa.

    THẬN TRỌNG

    trong khito_dateSẽ từ chối một hỗn hợp các trường Ngày nhận hàng trong tuần của Gregorian và ISO,to_charSẽ không, vì các thông số kỹ thuật định kèo bóng đá cúp c2 đầu ra nhưYyyy-MM-DD (Iyyy-IDDD)29191_2924229260_29272; Điều đó sẽ mang lại kết quả đáng ngạc nhiên gần đầu năm. (Nhìn thấyPhần 9.9.1Để biết thêm thông tin.)

  • Trong một chuyển đổi từ chuỗi thànhDấu thời gian, milisecond (MS) hoặc microsecond (US) Các giá trị được sử dụng làm chữ số thứ hai sau điểm thập phân. Ví dụto_timestamp ('12: 3 ',' ss: ms ')không phải là 3 mili giây, mà là 300, vì chuyển đổi tính là 12 + 0,3 giây. Điều này có nghĩa là cho định kèo bóng đá cúp c2SS: MS, các giá trị đầu vào12:3, 12:3012:300Chỉ định cùng một số mili giây. Để có được ba mili giây, người ta phải sử dụng12:003, mà chuyển đổi được tính là 12 + 0,003 = 12.003 giây.

    Đây là một ví dụ phức tạp hơn:TO_TIMESTAMP ('15: 12: 02.020.001230 ',' HH24: MI: SS.MS.US ')là 15 giờ, 12 phút và 2 giây + 20 mili giây + 1230 micro giây = 2.021230 giây.

  • to_char (..., 'id')Ngày số trong tuần phù hợp vớiTrích xuất (isodow từ ...)chức năng, nhưngto_char (..., 'd')'s không khớpTrích xuất (chỉ từ ...)

  • to_char (khoảng thời gian)Định kèo bóng đá cúp c2HHHH12Như được hiển thị trên đồng hồ 12 giờ, tức là số giờ và 36 giờ đầu ra là12, trong khiHH24đầu ra giá trị toàn bộ giờ, có thể vượt quá 23 cho các khoảng thời gian.

Bảng 9-24Hiển thị các mẫu mẫu có sẵn để định kèo bóng đá cúp c2 các giá trị số.

Bảng 9-24. Mẫu mẫu cho định kèo bóng đá cúp c2 số

mẫu Mô tả
9 Vị trí chữ số (có thể được bỏ nếu không đáng kể)
0 Vị trí chữ số (sẽ không bị loại bỏ, ngay cả khi không đáng kể)
.(giai đoạn) Điểm thập phân
,(dấu phẩy) Nhóm (hàng ngàn) phân tách
PR Giá trị âm trong khung góc
S dấu hiệu neo vào số (sử dụng locale)
L Biểu tượng tiền tệ (sử dụng locale)
D Điểm thập phân (sử dụng Locale)
g Dấu tách nhóm (sử dụng locale)
MI trừ đăng ký ở vị trí được chỉ định (nếu số <0)
PL cộng với vị trí được chỉ định (nếu số 0)
SG cộng/trừ đăng nhập vị trí được chỉ định
RN 32740_32782
THhoặcTH Hậu tố số thứ tự
V SHIFF Số chữ số được chỉ định (xem ghi chú)
EEEE Số mũ cho ký hiệu khoa học

Ghi chú sử dụng cho định kèo bóng đá cúp c2 số:

  • 0Chỉ định vị trí chữ số sẽ luôn được in, ngay cả khi nó chứa số không dẫn đầu/dấu vết.9Cũng chỉ định vị trí chữ số, nhưng nếu đó là số 0 hàng đầu thì nó sẽ được thay thế bằng một không gian, trong khi nếu đó là chế độ không có dấu vết và chế độ điền được chỉ định thì nó sẽ bị xóa. (Vìto_number (), hai ký tự mẫu này tương đương.)

  • Các ký tự mẫuS, L, DgĐại diện cho dấu hiệu, ký hiệu tiền tệ, dấu thập phân và hàng ngàn ký tự phân tách được xác định bởi locale hiện tại (xemLC_monetarylc_numeric34023_34183

  • Nếu không có điều khoản rõ ràng nào được thực hiện để đăng nhậpto_char ()S mẫu, một cột sẽ được dành riêng cho dấu hiệu và nó sẽ được neo (xuất hiện chỉ bên trái) số. Nếu nhưSxuất hiện chỉ bên trái của một số9s, nó cũng sẽ được neo vào số.

  • Một dấu hiệu được định kèo bóng đá cúp c2 bằng cách sử dụngSG, PLhoặcMIkhông được neo vào số; Ví dụ,to_char (-12, 'mi9999')sản xuất'-12'nhưngto_char (-12, 'S9999')Sản xuất'  -12 '. (Việc triển khai Oracle không cho phép sử dụngMItrước9, nhưng thay vào đó yêu cầu điều đó9trướcMI.)

  • THKhông chuyển đổi giá trị nhỏ hơn 0 và không chuyển đổi số phân số.

  • PL, SGTHPOSTGRESQLTiện ích mở rộng.

  • VNhân hiệu quả các giá trị đầu vào với10^n, trong đónlà số chữ số sauV. to_charKhông hỗ trợ việc sử dụngV35754_3579499.9v99không được phép).

  • EEEE(ký hiệu khoa học) không thể được sử dụng kết hợp với bất kỳ mẫu định kèo bóng đá cúp c2 hoặc bộ sửa đổi nào khác ngoài các mẫu chữ số và thập phân, và phải ở cuối chuỗi định kèo bóng đá cúp c2 (ví dụ:9.99eeeelà một mẫu hợp lệ).

Một số sửa đổi nhất định có thể được áp dụng cho bất kỳ mẫu mẫu nào để thay đổi hành vi của nó. Ví dụ,FM99.9999.99mẫu vớiFMModifier.Bảng 9-25Hiển thị các mẫu sửa đổi cho định kèo bóng đá cúp c2 số.

Bảng 9-25. Bộ sửa đổi mẫu mẫu cho định kèo bóng đá cúp c2 số

Modifier Mô tả Ví dụ
FMtiền tố 36928_36985 FM99.99
THHậu tố Hậu tố số chữ số trên 999th
THHậu tố Hậu tố số chữ thường số 999th

Bảng 9-26Hiển thị một số ví dụ về việc sử dụngto_charchức năng.

Bảng 9-26.to_charVí dụ

Biểu thức result
37854_37920 'Thứ ba, 06 05:39:18'
to_char (current_timestamp, 'fmday, fmdd hh12: mi: ss') 'Thứ ba, 6 05:39:18'
to_char (-0.1, '99 .99 ') '  -.10 '
to_char (-0.1, 'fm9.99') '-. 1'
to_char (-0.1, 'fm90,99') '-0.1'
to_char (0.1, '0,9') ' 0,1 '
to_char (12, '9990999.9') '    0012.0 '
TO_CHAR (12, 'FM9990999.9') '0012.'
to_char (485, '999') ' 485 '
to_char (-485, '999') '-485'
to_char (485, '9 9 9') ' 4 8 5 '
to_char (1485, '9,999') ' 1,485 '
to_char (1485, '9G999') ' 1 485 '
to_char (148.5, '999.999') ' 148.500 '
to_char (148.5, 'FM999.999') '148.5'
to_char (148.5, 'FM999.990') '148.500'
to_char (148.5, '999d999') ' 148.500 '
to_char (3148.5, '9G999D999') ' 3 148.500 '
to_char (-485, '999S') '485-'
to_char (-485, '999mi') '485-'
to_char (485, '999mi') '485'
to_char (485, 'fm999mi') 40521_40528
TO_CHAR (485, 'PL999') '+485'
to_char (485, 'SG999') '+485'
to_char (-485, 'SG999') '-485'
to_char (-485, '9SG99') '4-85'
to_char (-485, '999PR') '<485'
to_char (485, 'l999') 'DM 485'
to_char (485, 'rn') '        Cdlxxxv '
to_char (485, 'fmrn') 'CDLXXXV'
to_char (5.2, 'fmrn') 'V'
to_char (482, '999th') ' 482nd '
to_char (485, '"số tốt:" 999') 'số tốt: 485'
to_char (485.8, '"pre:" 999 "bài:" .999') 'pre: 485 bài: .800'
to_char (12, '99V999') ' 12000 '
to_char (12.4, '99V999') ' 12400 '
to_char (12,45, '99v9') ' 125 '
to_char (0,0004859, '9,99eeee') ' 4.86E-04 '