Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi EKSTRAK
Fungsi EXTRACT mengembalikan bagian tanggal atau waktu dari nilai TIMESTAMP, TIMESTAMPTZ, TIME, atau TIMETZ. Contohnya termasuk hari, bulan, tahun, jam, menit, detik, milidetik, atau mikrodetik dari stempel waktu.
Sintaks
EXTRACT(datepart FROM source)
Argumen
- datepart
-
Subbidang tanggal atau waktu untuk mengekstrak, seperti hari, bulan, tahun, jam, menit, detik, milidetik, atau mikrodetik. Untuk nilai yang mungkin, lihatBagian tanggal untuk fungsi tanggal atau stempel waktu.
- sumber
-
Kolom atau ekspresi yang mengevaluasi tipe data TIMESTAMP, TIMESTAMPTZ, TIME, atau TIMETZ.
Jenis pengembalian
INTEGER jika nilai sumber mengevaluasi tipe data TIMESTAMP, TIME, atau TIMETZ.
PRESISI GANDA jika nilai sumber mengevaluasi tipe data TIMESTAMPTZ.
Contoh dengan TIMESTAMP
Contoh berikut menentukan angka minggu untuk penjualan di mana harga yang dibayarkan adalah $10.000 atau lebih.
select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26
Contoh berikut mengembalikan nilai menit dari nilai timestamp literal.
select extract(minute from timestamp '2009-09-09 12:08:43'); date_part --
Contoh berikut mengembalikan nilai milidetik dari nilai timestamp literal.
select extract(ms from timestamp '2009-09-09 12:08:43.101'); date_part ----------- 101
Contoh dengan TIMESTAMPTZ
Contoh berikut mengembalikan nilai tahun dari nilai timestamptz literal.
select extract(year from timestamptz '1.12.1997 07:37:16.00 PST'); date_part ----------- 1997
Contoh dengan waktu
Berikut contoh tabel TIME_TEST memiliki kolom TIME_VAL (tipe TIME) dengan tiga nilai dimasukkan.
select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
Contoh berikut mengekstrak menit dari setiap time_val.
select extract(minute from time_val) as minutes from time_test; minutes ----------- 0 0 58
Contoh berikut mengekstrak jam dari setiap time_val.
select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0
Contoh berikut mengekstrak milidetik dari nilai literal.
select extract(ms from time '18:25:33.123456'); date_part ----------- 123
Contoh dengan TIMETZ
Contoh tabel berikut TIMETZ_TEST memiliki kolom TIMETZ_VAL (tipe TIMETZ) dengan tiga nilai dimasukkan.
select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
Contoh berikut mengekstrak jam dari setiap timetz_val.
select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5
Contoh berikut mengekstrak milidetik dari nilai literal. Literal tidak dikonversi ke UTC sebelum ekstraksi diproses.
select extract(ms from timetz '18:25:33.123456 EST'); date_part ----------- 123
Contoh berikut mengembalikan jam offset zona waktu dari UTC dari nilai timetz literal.
select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT'); date_part ----------- -7