Trong PostgreSQL, bạn có thể sử dụng extract()
chức năng lấy ngày từ một ngày.
Bạn cũng có thể sử dụng date_part()
để làm điều tương tự.
Khi trích xuất ngày từ một ngày, bạn cần xác định nghĩa của từ “ngày” mà bạn muốn nói. Ví dụ:“ngày trong tuần”, “ngày trong tháng”, “ngày trong năm”, v.v.
Ví dụ 1:Ngày trong tuần
Dưới đây là một ví dụ về việc sử dụng extract()
chức năng trích xuất ngày trong tuần từ một ngày.
Sử dụng dow
trả về ngày trong tuần là Chủ Nhật (0) thành Thứ Bảy (6).
SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Kết quả:
Day of week | Day Name -------------+----------- 0 | Sunday
Trong ví dụ này, tôi cũng trả lại tên ngày để không có sự nhầm lẫn về ngày thực sự được trả lại.
Tôi sẽ sử dụng cùng một ngày cho các ví dụ còn lại, vì vậy tôi không cần phải in ra tên ngày trong các ví dụ đó.
Ví dụ 2:Ngày ISO trong tuần
Sử dụng isodow
trả lại ngày trong tuần là Thứ Hai (1) thành Chủ Nhật (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Kết quả:
ISO Day of week ----------------- 7
Lý do tôi sử dụng Sunday trong các ví dụ này là vì nó làm nổi bật sự khác biệt giữa isodow
và dow
.
Ví dụ 3:Ngày trong tháng
Khi sử dụng dấu thời gian hoặc ngày giá trị, day
trả về ngày trong tháng (1 - 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Kết quả:
Day of month -------------- 27
Khi sử dụng khoảng thời gian giá trị, day
kết quả trường là số ngày được trả lại.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Kết quả:
Number of days ---------------- 224
Ví dụ 4:Ngày trong năm
Sử dụng doy
trả về ngày trong năm (1 - 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Kết quả:
Day of year ------------- 362
Ví dụ 5:Hàm date_part ()
date_part()
hàm có thể được sử dụng thay cho extract()
hàm số. Đây là một ví dụ.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Kết quả:
Day of year ------------- 362