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.