Trong Cơ sở dữ liệu Oracle, EXTRACT(datetime)
hàm trích xuất và trả về giá trị của trường ngày giờ cụ thể từ biểu thức ngày giờ hoặc khoảng thời gian.
Cú pháp
Cú pháp như sau:
EXTRACT( { YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND
| TIMEZONE_HOUR
| TIMEZONE_MINUTE
| TIMEZONE_REGION
| TIMEZONE_ABBR
}
FROM { expr }
)
Ở đâu expr
là bất kỳ biểu thức nào đánh giá kiểu dữ liệu ngày giờ hoặc khoảng thời gian tương thích với trường được yêu cầu.
expr
đối số được coi là kiểu dữ liệu ngày giờ ANSI.
Ví dụ 1
Dưới đây là một ví dụ để chứng minh chức năng:
SELECT EXTRACT(YEAR FROM DATE '2027-10-03')
FROM DUAL;
Kết quả:
2027
Ví dụ 2
Dưới đây là một ví dụ trích xuất giây và micro giây từ TIMESTAMP
giá trị:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2027-10-15 23:10:57.98321 +04:00') AS Result
FROM DUAL;
Kết quả:
57.98321
Khoảng thời gian
Dưới đây là một ví dụ trích xuất năm từ một ký tự khoảng thời gian:
SELECT EXTRACT(YEAR FROM INTERVAL '25-3' YEAR TO MONTH)
FROM DUAL;
Kết quả:
25
Cố gắng trích xuất trường sai
Dưới đây là những gì sẽ xảy ra khi chúng tôi cố gắng trích xuất một trường không tồn tại trong giá trị được chỉ định:
SELECT
EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL;
Kết quả:
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:
Không phải tất cả các phần ngày tháng đều có thể được trích xuất từ tất cả các kiểu dữ liệu. Xem tài liệu Oracle để biết các phần ngày được chấp nhận cho từng kiểu dữ liệu nhất định.