PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách hoạt động của to_char () trong PostgreSQL

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ố


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vùng chứa Spring Docker không thể truy cập vùng chứa Postgres Docker

  2. PostgreSQL:truyền chuỗi thành ngày DD / MM / YYYY

  3. Làm thế nào để truy vấn giá trị null trong trường json loại postgresql?

  4. PostgreSQL:NGOẠI KHÓA / ON XÓA CASCADE

  5. Làm cách nào để PyPy, Django và PostgreSQL hoạt động cùng nhau?