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 cách đọc kèo bóng đá 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 định cách đọc kèo bóng đá Chức năng

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

Theto_timestampHàm có thể Cũng lấy mộtDouble PrecisionĐối số để chuyển đổi từ unix epoch sangdấu thời gian Với múi giờ. (Số nguyên12361_12401Double Độ chính xác.)

Bảng 9-20. Định cách đọc kèo bóng đá chức năng

chức năng Return Type Mô tả Ví dụ
to_char(dấu thời gian, Text) Text chuyển đổi thời gian thành chuỗi to_char (current_timestamp, 'HH12: MI: SS')
to_char(Khoảng, Text) Text Chuyển đổi khoảng thời gian thành chuỗi to_char (khoảng thời gian '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 Độ chính xác, 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 Độ chính xác) dấu thời gian với múi giờ Chuyển đổi Epoch UNIX sang tem thời gian to_timestamp (200120400)

Trong chuỗi mẫu đầu ra (choto_char), có những mẫu nhất định được công nhận và thay thế bằng dữ liệu được định cách đọc kèo bóng đá phù hợp từ giá trị được định cách đọc kèo bóng đá. Bất kỳ văn bản nào không phải là một mẫu Mẫu chỉ đơn giản là sao chép nguyên văn. Tương tự, trong một đầu vào Chuỗi mẫu (cho bất cứ điều gì ngoại trừto_char16775_16895

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

Bảng 9-21. Mẫu mẫu cho ngày/giờ Định cách đọc kèo bóng đá

mẫu 17423_17436
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 giây cuối đêm (0-86399)
18469_18473hoặcA.M.hoặcPMhoặcp.m. Chỉ báo Meridian (chữ hoa)
AMhoặcA.M.hoặcPMhoặcp.m. Chỉ báo Meridian (chữ thường)
y, yyy Năm (4 và nhiều chữ số) với dấu phẩy
Yyyy Năm (4 và thêm chữ số)
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 Year (4 và thêm chữ số)
IYY 3 chữ số cuối năm iso
IY 2 chữ số cuối năm của ISO
i chữ số cuối cùng của năm ISO
BChoặcB.C.hoặcADhoặcA.D. Chỉ báo ERA (chữ hoa)
BChoặcB.C.hoặcADhoặcA.D. Chỉ báo ERA (chữ thường)
tháng Tên tháng viết hoa đầy đủ (có màu trống đến 9 chars)
tháng Tên tháng hoàn toàn hỗn hợp (có màu trống đến 9 chars)
tháng 20877_20940
Mon Tên tháng viết tắt (3 ký tự bằng tiếng Anh, tiếng Anh, Độ dài cục bộ khác nhau)
Mon Tên tháng trong trường hợp hỗn hợp viết tắt Tiếng Anh, độ dài bản địa hóa khác nhau)
Mon ​​Tên tháng viết chữ viết tắt (3 ký tự bằng tiếng Anh, tiếng Anh, Độ dài cục bộ khác nhau)
mm Số tháng (01-12)
ngày 21704_21765
ngày Tên trong trường hợp hỗn hợp đầy đủ (Bánh trống đến 9 chars)
ngày Tên ngày hoàn toàn thường chars)
DY Tên chữ viết tắt (3 ký tự bằng tiếng Anh, tiếng Anh, Độ dài cục bộ khác nhau)
DY Tên trong trường hợp hỗn hợp viết tắt (3 ký tự bằng tiếng Anh, tiếng Anh, Độ dài cục bộ khác nhau)
DY Tên chữ thường viết tắt (3 ký tự bằng tiếng Anh, tiếng Anh, Độ dài cục bộ khác nhau)
DDD ngày trong năm (001-366)
IDDD 22836_22925
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 Ngày ISO 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 trên ngày đầu tiên của tháng.)
WW Số tuần của năm (1-53) (tuần đầu tiên bắt đầu ngày đầu tiên của năm.)
IW Số tuần ISO của năm (1 - 53; Thứ Năm đầu tiên của năm mới là vào tuần 1.)
CC Thế kỷ (2 chữ số) (thế kỷ hai mươi mốt bắt đầu trên 2001-01-01.)
J 24267_24335
q quý
RM Tháng bằng chữ số La Mã (I-XII; I = tháng 1) (chữ hoa)
rm Tháng bằng chữ số La Mã (I-XII; I = tháng 1) (chữ thường)
TZ Tên khu vực thời gian (chữ hoa)
TZ Tên vùng thời gian (chữ thường)

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ụ,fmmonththángmẫu vớiFMModifier.Bảng 9-22Hiển thị các mẫu sửa đổi cho ngày/giờ Định cách đọc kèo bóng đá.

Bảng 9-22. Bộ điều chỉnh mẫu mẫu cho Định cách đọc kèo bóng đá ngày/giờ

Modifier Mô tả Ví dụ
FMtiền tố Chế độ điền (triệt tiêu khoảng trống và zeroes) fmmonth
ThHậu tố Hậu tố số chữ in hoa ddth
ThHậu tố Hậu tố số chữ thường ddth
fxtiền tố Định cách đọc kèo bóng đá 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_Messages) tmmonth
SPHậu tố Chế độ chính tả (chưa được triển khai) DDSP

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

  • FMnhững khoảng trống theo dõi mà nếu không sẽ được thêm vào để tạo ra đầu ra của một mẫu được cố định chiều rộng.

  • TMKhông bao gồm dấu vết khoảng trống.

  • to_timestampto_dateBỏ qua nhiều trống khoảng cách trong chuỗi đầu vào nếufxTùy chọn không được sử dụng.FXphải là được chỉ định là mục đầu tiên trong mẫu. Ví dụto_timestamp ('2000 tháng 6', 'Yyyy mon')là chính xác, nhưng28023_28092Trả về lỗi, vìto_timestampChỉ mong đợi một không gian.

  • Văn bản thông thường được phép trongto_charMẫu và sẽ được đầu ra theo đúng 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ữ cách đọc kèo bóng đá năm, nhưng đơnYinnămsẽ không.

  • Nếu bạn muốn có báo giá kép trong đầu ra, bạn phải trước đó với một dấu gạch chéo ngược, ví dụE '\ "Yyyy tháng \"'. (Hai dấu gạch chéo ngược là cần thiết vì dấu gạch chéo ngược đã có một ý nghĩa đặc biệt Khi sử dụng cú pháp chuỗi thoát.)

  • TheYyyyChuyển đổi từ chuỗi ĐẾNTimestamphoặcngàycó hạn chế nếu bạn sử dụng một năm với Hơn 4 chữ số. Bạn phải sử dụng một số ký tự không chữ số hoặc Mẫu sauYyyy, nếu không thì 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ặcTO_DATE ('20000NOV31', 'Yyyymondd').

  • Trong các chuyển đổi từ chuỗi sangTimestamphoặcngày, TheCCTrường bị bỏ qua nếu cóYYY, Yyyyhoặcy, yyyTrường. Nếu như30136_30140được sử dụng vớiYYhoặcYSau đó, năm được tính là(CC-1)*100+YY.

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

    • năm, 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 được giả định là 1 (Thứ Hai).

    • năm và ngày trong năm, ví dụto_date ('2006-291', 'iyyy-iddd')Ngoài ra trả về2006-10-19.

    Cố gắng xây dựng một ngày bằng cách sử dụng hỗn hợp Tuần lễ ISO và các lĩnh vực ngày Gregorian là vô nghĩa, và có thể mang lại Kết quả bất ngờ. Trong bối cảnh của một năm ISO, Khái niệm về một '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. Người dùng nên chăm sóc để giữ cho Gregorian và ISO ngày Thông số kỹ thuật riêng biệt.

  • millisecond (MS) và microsecond (US) Các giá trị trong chuyển đổi từ Chuỗi thànhTimestampđược sử dụng như một phần của Những giây sau điểm thập phân. Ví dụto_timestamp ('12: 3 ',' ss: ms ')không phải là 3 mili giây, nhưng 300, vì chuyển đổi được tính là 12 + 0,3 giây. Điều này có nghĩa là cho định cách đọc kèo bóng đáSS: MS, các giá trị đầu vào12:3, 12:3012:300Chỉ định cùng một số của mili giây. Để có được ba mili giây, người ta phải sử dụng12:003, mà tính toán chuyển đổi như 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 ', 'HH: 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')S ngày của Việc đánh số tuần phù hợp vớiTrích xuất (isodow từ ...)chức năng, nhưngto_char (..., 'd')'S không cuộc thi đấuTrích xuất (chỉ từ ...)'s Đánh số ngày.

  • to_char (khoảng thời gian)Định cách đọc kèo bóng đáHHHH12Như giờ trong một ngày, trong khiHH24Có thể xuất hiện giờ vượt quá một ngày, ví dụ: 24.

Bảng 9-23Hiển thị các mẫu mẫu có sẵn để định cách đọc kèo bóng đá Giá trị số.

Bảng 9-23. Mẫu mẫu cho số Định cách đọc kèo bóng đá

mẫu Mô tả
9 Giá trị với số chữ số được chỉ định
0 Giá trị với số không dẫn đầu
.(giai đoạn) Điểm thập phân
,(dấu phẩy) Nhóm (nghì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 phân tách nhóm (sử dụng locale)
MI trừ vị trí được chỉ định (nếu số < 0)
PL Plus đăng nhập vị trí được chỉ định (nếu số 0)
SG cộng/trừ đăng nhập vị trí được chỉ định
RN 35414_35456
THhoặcTH Hậu tố số thứ tự
V 35708_35754
EEEE Ký hiệu khoa học (chưa được thực hiện)

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

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

  • 9dẫn đến một giá trị với cùng một số chữ số như có9s. Nếu một chữ số không có sẵn, nó sẽ xuất ra không gian.

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

  • PL, SG,, VàTHPOSTGRESQLTiện ích mở rộng.

  • VNhân hiệu quả nhân Giá trị đầu vào của10^n, trong đónlà số chữ số sauV. to_charKhông hỗ trợ việc sử dụngVKết hợp với một điểm thập phân. (Ví dụ.,99,9v99không được phép.)

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

Bảng 9-24.to_charVí dụ

Biểu thức result
to_char (current_timestamp, 'Ngày, DD HH12: MI: SS') '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, '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 '
41145_41185 ' 3 148.500 '
to_char (-485, '999S') '485-'
to_char (-485, '999mi') '485-'
to_char (485, '999mi') '485'
to_char (485, 'fm999mi') '485'
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'
42655_42677 'DM 485
to_char (485, 'rn') 42881_42940
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'
43660_43722 'trước: 485 bài: .800'
to_char (12, '99V999') ' 12000 '
to_char (12.4, '99V999') ' 12400 '
to_char (12,45, '99v9') ' 125 '