Postgres có age()
hàm trả về tuổi theo năm, tháng và ngày dựa trên hai ngày.
Điều này hoạt động tốt trừ khi bạn chỉ muốn quay trở lại tuổi theo năm.
Ví dụ:bạn chỉ muốn trả về tuổi của một người dựa trên ngày sinh của họ. Bạn muốn một cái gì đó giống như 32 thay vì 32 năm 4 gió 67 ngày , đó là age()
có khả năng trở lại.
May mắn thay, có một cách dễ dàng để thực hiện điều này trong PostgreSQL.
Nếu bạn chỉ muốn tuổi tính bằng năm, bạn có thể sử dụng extract()
hoặc date_part()
để lấy năm từ age()
giá trị trả về của hàm.
Đây là một ví dụ sử dụng date_part()
chức năng:
SELECT date_part('year', age(timestamp '2003-12-27'));
Kết quả:
16.0
Đó là cách nó xuất hiện khi tôi chạy nó trong Azure Data Studio.
Khi tôi chạy nó trong psql , Tôi nhận được cái này:
16
Cả extract()
và date_part()
trả về kết quả của họ bằng cách sử dụng kiểu dữ liệu độ chính xác kép.
Bạn có thể chuyển đổi dữ liệu này thành một số nguyên (hoặc kiểu dữ liệu khác) nếu được yêu cầu, bằng cách thêm nó bằng ::int
.
SELECT date_part('year', age(timestamp '2003-12-27'))::int;
Kết quả:
16