Di PostgreSQL, extract() fungsi mengambil subbidang seperti tahun, bulan, jam, atau menit, bagian dari nilai tanggal/waktu.
Ini setara dengan date_part() fungsi, meskipun dengan sintaks yang sedikit berbeda.
Sintaks
Sintaksnya seperti ini:
EXTRACT(field FROM source) Dimana:
fieldis adalah pengidentifikasi atau string yang memilih bidang apa yang akan diekstrak dari nilai sumber.sourceadalah stempel waktu atau interval .
Contoh – Stempel Waktu
Berikut adalah contoh dasar untuk mendemonstrasikan cara mengambil bidang dari stempel waktu nilai.
SELECT extract(hour FROM timestamp '2022-10-30 10:11:35'); Hasil:
10
Contoh ini mengambil bidang jam dari stempel waktu nilai.
Seperti yang disebutkan, argumen pertama dapat berupa pengidentifikasi atau string. Ini adalah salah satu perbedaan antara extract() dan date_part() . Saat menggunakan date_part() , Anda harus menyediakan string untuk argumen ini.
Ini contoh yang sama lagi, kecuali sebagai string.
SELECT extract('hour' FROM timestamp '2022-10-30 10:11:35'); Hasil:
10
Berikut ini contoh dengan stempel waktu yang sama, tetapi kali ini saya mengambil bidang tahun.
SELECT extract(year FROM timestamp '2022-10-30 10:11:35'); Hasil:
2022
Contoh – Interval
Dalam contoh ini, saya mengambil bagian tanggal dari interval nilai.
SELECT extract(hour FROM interval '7 hours 45 minutes'); Hasil:
7
Pada contoh berikutnya, fungsi mengembalikan jumlah jam dengan benar, meskipun saya hanya memberikan jumlah menit.
SELECT extract(hour FROM interval '120 minutes'); Hasil:
2
Namun, jangan mengandalkan teknik ini. Anda mungkin menemukan bahwa Anda tidak selalu mendapatkan hasil yang Anda harapkan.
Misalnya:
SELECT extract(hour FROM interval '100 minutes'); Hasil:
1
Dan satu lagi:
SELECT extract(minute FROM interval '2 hours'); Hasil:
0
Nama Bidang
Argumen pertama dapat berupa salah satu dari berikut ini:
centurydaydecadedowdoyepochhourisodowisoyearmicrosecondsmillenniummillisecondsminutemonthquartersecondtimezonetimezone_hourtimezone_minuteweekyear
Ini sama dengan nilai yang valid untuk date_part() fungsi.