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:
field
is adalah pengidentifikasi atau string yang memilih bidang apa yang akan diekstrak dari nilai sumber.source
adalah 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:
century
day
decade
dow
doy
epoch
hour
isodow
isoyear
microseconds
millennium
milliseconds
minute
month
quarter
second
timezone
timezone_hour
timezone_minute
week
year
Ini sama dengan nilai yang valid untuk date_part()
fungsi.