Dưới đây là hai hàm có thể được sử dụng để trích xuất năm từ một ngày trong Cơ sở dữ liệu Oracle.
EXTRACT()
Chức năng
Bạn có thể sử dụng EXTRACT(datetime)
chức năng trích xuất các phần datetime khác nhau từ một giá trị datetime. Điều này bao gồm cả năm.
Đây là một ví dụ:
SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL;
Kết quả:
2030
Đó là YEAR
từ khóa trích xuất phần năm từ ngày. Chúng ta có thể lấy các phần ngày tháng khác bằng cách thay đổi nó thành từ khóa có liên quan. Ví dụ:MONTH
, DAY
, HOUR
, MINUTE
, v.v.
Chúng tôi cũng có thể sử dụng hàm với các giá trị ngày giờ khác, chẳng hạn như TIMESTAMP
, v.v.
Hàm cũng có thể được sử dụng để trả về năm từ một khoảng thời gian. Xem EXTRACT(datetime)
Ví dụ về hàm trong Oracle.
TO_CHAR(datetime)
Chức năng
Chúng tôi cũng có thể sử dụng TO_CHAR(datetime)
hoạt động như một phương pháp thay thế để lấy năm từ một ngày.
Hàm này chấp nhận giá trị datetime hoặc khoảng thời gian làm đối số đầu tiên và mô hình định dạng làm đối số thứ hai. Sau đó, hàm chuyển đổi giá trị thành kiểu dữ liệu VARCHAR2
ở định dạng được chỉ định.
Mô hình định dạng chỉ định định dạng để trả về giá trị ngày giờ / khoảng thời gian. Mô hình định dạng bao gồm một hoặc nhiều phần tử định dạng . Điều này cho phép chúng tôi tạo ra các kết quả một cách cẩn thận để phản ánh định dạng mong muốn của chúng tôi.
Nếu chúng tôi chỉ muốn trả lại năm, chúng tôi có thể sử dụng YYYY
phần tử định dạng:
SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL;
Kết quả:
2027
Chúng tôi cũng có thể sử dụng các lựa chọn thay thế cho mô hình định dạng. Ví dụ:chúng ta có thể sử dụng YY
để chỉ định một năm có hai chữ số:
SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL;
Kết quả:
27
Trên thực tế, chúng ta có thể có từ một đến bốn Y
ký tự, tùy thuộc vào yêu cầu của chúng tôi:
SELECT
TO_CHAR(DATE '2027-10-03', 'Y') AS Y,
TO_CHAR(DATE '2027-10-03', 'YY') AS YY,
TO_CHAR(DATE '2027-10-03', 'YYY') AS YYY,
TO_CHAR(DATE '2027-10-03', 'YYYY') AS YYYY
FROM DUAL;
Kết quả:
Y YY YYY YYYY ____ _____ ______ _______ 7 27 027 2027
Bao gồm dấu phẩy
Chúng ta có thể sử dụng Y,YYY
phần tử định dạng nếu chúng ta muốn bao gồm dấu phẩy trong đầu ra:
SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL;
Kết quả:
2,027
Đánh vần của năm
Chúng tôi thậm chí có thể sử dụng YEAR
phần tử định dạng để trả về năm được đánh vần:
SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL;
Kết quả:
TWENTY TWENTY-SEVEN
BC Ngày
Chúng tôi cũng có thể phục vụ cho các ngày BC bằng cách đặt trước phần tử định dạng năm của chúng tôi bằng S
. Làm điều này, đặt trước kết quả bằng một dấu trừ, nếu có:
SELECT
TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL;
Kết quả:
SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY
Chúng ta có thể sử dụng BC hoặc B.C. định dạng các phần tử để phục vụ cho ngày BC:
SELECT
TO_CHAR(DATE '-250-10-03', 'YYYY BC') AS YYYY,
TO_CHAR(DATE '-250-10-03', 'YEAR BC') AS YEAR,
TO_CHAR(DATE '250-10-03', 'YYYY BC') AS YYYY,
TO_CHAR(DATE '250-10-03', 'YEAR BC') AS YEAR
FROM DUAL;
Kết quả:
YYYY YEAR YYYY YEAR __________ _______________ __________ _______________ 0250 BC TWO FIFTY BC 0250 AD TWO FIFTY AD