Postgres memiliki age()
fungsi yang mengembalikan usia dalam tahun, bulan, dan hari berdasarkan dua tanggal.
Ini berfungsi dengan baik kecuali Anda hanya ingin mengembalikan usia dalam beberapa tahun.
Misalnya, Anda hanya ingin mengembalikan usia seseorang berdasarkan tanggal lahirnya. Anda menginginkan sesuatu seperti 32 bukannya 32 tahun 4 bulan 67 hari , yaitu age()
kemungkinan akan kembali.
Untungnya ada cara mudah untuk melakukannya di PostgreSQL.
Jika Anda hanya ingin usia dalam tahun, Anda dapat menggunakan extract()
atau date_part()
untuk mendapatkan tahun dari age()
nilai kembalian fungsi.
Berikut adalah contoh yang menggunakan date_part()
fungsi:
SELECT date_part('year', age(timestamp '2003-12-27'));
Hasil:
16.0
Begitulah tampilannya saat saya menjalankannya di Azure Data Studio.
Saat saya menjalankannya di psql , saya mengerti ini:
16
Keduanya extract()
dan date_part()
mengembalikan hasilnya menggunakan tipe data presisi ganda.
Anda dapat mengonversinya menjadi bilangan bulat (atau tipe data lainnya) jika diperlukan, dengan menambahkannya dengan ::int
.
SELECT date_part('year', age(timestamp '2003-12-27'))::int;
Hasil:
16