Nếu bạn đã quen với PostgreSQL, bạn có thể biết rằng bạn có thể sử dụng EXTRACT()
và DATE_PART()
các chức năng để trích xuất tháng từ một ngày. Nhưng những chức năng đó chỉ cho phép bạn trích xuất tháng số .
Điều gì xảy ra nếu bạn cần tháng tên ?
Bạn có thể lấy tên tháng từ một ngày bằng cách sử dụng TO_CHAR()
hàm số. Hàm này trả về một chuỗi dựa trên dấu thời gian và mẫu mẫu mà bạn cung cấp làm đối số.
Ví dụ
Đây là một ví dụ nhanh.
SELECT TO_CHAR(TIMESTAMP '2020-12-16 10:41:35', 'Month') AS "Month";
Kết quả:
Month ----------- December
Trong trường hợp này, tôi đã chỉ định một mẫu mẫu của 'Month'
, do đó, điều này khiến tháng được trả về từ giá trị dấu thời gian.
Chữ thường, Chữ hoa và Viết hoa
Bạn có thể trả lại tháng bằng chữ thường, chữ hoa hoặc viết hoa. Bạn xác định cái nào tùy từng trường hợp mà bạn sử dụng cho mẫu mẫu (đối số thứ hai).
Đây là một ví dụ để chứng minh ý tôi muốn nói.
SELECT TO_CHAR(current_timestamp, 'month') AS "month", TO_CHAR(current_timestamp, 'Month') AS "Month", TO_CHAR(current_timestamp, 'MONTH') AS "MONTH";
Kết quả:
month | Month | MONTH -----------+-----------+----------- march | March | MARCH
Tất cả các kết quả được đệm trống thành 9 ký tự, bất kể trường hợp được sử dụng.
Tên tháng ngắn
Bạn cũng có thể chỉ định rằng kết quả được định dạng bằng tên tháng ngắn.
SELECT TO_CHAR(current_timestamp, 'mon') AS "mon", TO_CHAR(current_timestamp, 'Mon') AS "Mon", TO_CHAR(current_timestamp, 'MON') AS "MON";
Kết quả:
mon | Mon | MON -----+-----+----- mar | Mar | MAR