Di Oracle Database, EXTRACT(datetime) fungsi mengekstrak dan mengembalikan nilai bidang datetime yang ditentukan dari ekspresi datetime atau interval.
Sintaks
Sintaksnya seperti ini:
EXTRACT( { YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND
| TIMEZONE_HOUR
| TIMEZONE_MINUTE
| TIMEZONE_REGION
| TIMEZONE_ABBR
}
FROM { expr }
)
Dimana expr adalah ekspresi apa pun yang mengevaluasi ke tipe data datetime atau interval yang kompatibel dengan bidang yang diminta.
expr argumen diperlakukan sebagai tipe data datetime ANSI.
Contoh 1
Berikut ini contoh untuk mendemonstrasikan fungsinya:
SELECT EXTRACT(YEAR FROM DATE '2027-10-03')
FROM DUAL; Hasil:
2027
Contoh 2
Berikut adalah contoh yang mengekstrak detik dan mikrodetik dari TIMESTAMP nilai:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2027-10-15 23:10:57.98321 +04:00') AS Result
FROM DUAL; Hasil:
57.98321
Interval
Berikut adalah contoh yang mengekstrak tahun dari literal interval:
SELECT EXTRACT(YEAR FROM INTERVAL '25-3' YEAR TO MONTH)
FROM DUAL; Hasil:
25
Mencoba Mengekstrak Bidang yang Salah
Inilah yang terjadi ketika kami mencoba mengekstrak bidang yang tidak ada dalam nilai yang ditentukan:
SELECT
EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL; Hasil:
Error starting at line : 1 in command -
SELECT
EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL
Error at Command Line : 2 Column : 25
Error report -
SQL Error: ORA-30076: invalid extract field for extract source
30076. 00000 - "invalid extract field for extract source"
*Cause: The extract source does not contain the specified extract field.
*Action: Tidak semua bagian tanggal dapat diekstraksi dari semua tipe data. Lihat dokumentasi Oracle untuk bagian tanggal yang diterima untuk setiap tipe data yang diberikan.