Trong Postgres, to_char()
là một hàm định dạng kiểu dữ liệu chuyển đổi đối số đầu tiên của nó thành một chuỗi.
Định dạng của chuỗi được xác định bởi đối số thứ hai.
to_char()
có thể được sử dụng để thực hiện các chuyển đổi sau:
- dấu thời gian thành chuỗi
- khoảng thời gian đến chuỗi
- số nguyên thành chuỗi
- độ chính xác thực / kép thành chuỗi
- số thành chuỗi
Cú pháp
Cú pháp như sau:
to_char(timestamp, text)
to_char(interval, text)
to_char(int, text)
to_char(double precision, text)
to_char(numeric, text)
Trong đó đối số đầu tiên là giá trị cần chuyển đổi (trong bất kỳ kiểu dữ liệu nào được liệt kê) và text
là một chuỗi định dạng để định dạng đối số đầu tiên.
Ví dụ
Dưới đây là một ví dụ về định dạng giá trị ngày tháng:
SELECT to_char(date '2020-12-25', 'Day, DD Month YYYY');
Kết quả:
Friday , 25 December 2020
Trong trường hợp này, chuỗi định dạng Day, DD Month YYYY
xác định cách định dạng ngày khi nó được trả về dưới dạng chuỗi bởi to_char()
.
Mẫu Mẫu
Chuỗi định dạng bao gồm một hoặc nhiều mẫu mẫu .
Trong ví dụ trước, chuỗi định dạng của tôi là Day, DD Month YYYY
. Do đó, nó bao gồm các mẫu mẫu sau:
-
Day
-
DD
-
Month
-
YYYY
Tôi có thể đã sử dụng nhiều hơn hoặc ít hơn các mẫu khuôn mẫu, và kết quả đầu ra sẽ khác.
Ví dụ, tôi có thể đã làm như sau:
SELECT to_char(date '2020-12-25', 'Day');
Kết quả:
Friday
Ngoài ra, chuỗi định dạng của tôi có thể bao gồm hoàn toàn một loạt các mẫu mẫu khác nhau.
Ví dụ:
SELECT to_char(date '2020-12-25', 'Dy, DD Mon YY');
Kết quả:
Fri, 25 Dec 20
Công cụ sửa đổi mẫu mẫu
Bạn cũng có thể thêm các công cụ sửa đổi mẫu mẫu vào chuỗi định dạng của mình.
Kết quả sẽ hơi khác một chút tùy thuộc vào công cụ sửa đổi được sử dụng.
Ví dụ:ví dụ sau trình bày ngày trong tháng dưới dạng số thứ tự.
SELECT to_char(date '2020-12-25', 'Day, DDth Month YYYY');
Kết quả:
Friday , 25 December 2020
Điều này giống với ví dụ đầu tiên nhưng sự khác biệt là tôi đã thêm th
công cụ sửa đổi mẫu làm hậu tố cho DD
mẫu mẫu. Điều này nối hậu tố số thứ tự với ngày trong tháng.
Do đó, chúng tôi kết thúc bằng ngày 25 thay vì chỉ 25 .
Để nhấn mạnh tác dụng của công cụ sửa đổi mẫu, đây là giao diện của công cụ này khi được áp dụng cho các giá trị khác nhau.
SELECT
to_char(date '2020-12-01', 'DDth') AS "1",
to_char(date '2020-12-02', 'DDth') AS "2",
to_char(date '2020-12-03', 'DDth') AS "3",
to_char(date '2020-12-04', 'DDth') AS "4";
Kết quả:
1 | 2 | 3 | 4 ------+------+------+------ 01st | 02nd | 03rd | 04th
Tôi có thể thêm một công cụ sửa đổi khác để loại bỏ các số không ở đầu nếu cần.
SELECT
to_char(date '2020-12-01', 'FMDDth') AS "1",
to_char(date '2020-12-02', 'FMDDth') AS "2",
to_char(date '2020-12-03', 'FMDDth') AS "3",
to_char(date '2020-12-04', 'FMDDth') AS "4";
Kết quả:
1 | 2 | 3 | 4 -----+-----+-----+----- 1st | 2nd | 3rd | 4th
Trong trường hợp này, tôi đã thêm FM
dành cho "chế độ điền". Công cụ sửa đổi này loại bỏ các số 0 ở đầu và khoảng trống đệm.
Số
Ví dụ trước cũng có thể được áp dụng cho các giá trị số.
Tuy nhiên, khi sử dụng các giá trị số, bạn sẽ cần hoán đổi D
với 9
hoặc 0
.
SELECT
to_char(1, '9th') AS "1",
to_char(2, '9th') AS "2",
to_char(3, '9th') AS "3",
to_char(4, '9th') AS "4";
Kết quả:
1 | 2 | 3 | 4 ------+------+------+------ 1st | 2nd | 3rd | 4th
Danh sách các mẫu và công cụ sửa đổi mẫu
Các mẫu mẫu thực tế mà bạn có thể sử dụng tùy thuộc vào việc bạn đang định dạng giá trị ngày / giờ hay một số.
Để có danh sách đầy đủ các mẫu mẫu có sẵn, hãy xem:
- Các Mẫu &Công cụ sửa đổi Mẫu cho Định dạng Ngày / Giờ
- Các Mẫu &Công cụ sửa đổi Mẫu cho Định dạng Số