Trong Cơ sở dữ liệu Oracle, TO_CHAR(datetime)
cho phép chúng tôi trả về giá trị ngày giờ, được định dạng theo cách mà chúng tôi chỉ định.
Một trong những điều chúng ta có thể làm là trả lại tên tháng cho một ngày.
Tên đầy đủ của tháng
Khi nói đến việc trả lại tên tháng từ một ngày, chúng tôi có tùy chọn lấy tên tháng đầy đủ hoặc phiên bản viết tắt của nó.
Để lấy tên tháng đầy đủ, hãy sử dụng MONTH
phần tử định dạng:
SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;
Kết quả:
OCTOBER
Tên tháng ngắn
Để lấy tên tháng viết tắt, hãy sử dụng MON
:
SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;
Kết quả:
OCT
Viết hoa
Chúng tôi có thể sử dụng cách viết hoa để xác định cách viết hoa của đầu ra:
SELECT
TO_CHAR(DATE '2035-10-03', 'Month') AS "Month",
TO_CHAR(DATE '2035-10-03', 'month') AS "month",
TO_CHAR(DATE '2035-10-03', 'Mon') AS "Mon",
TO_CHAR(DATE '2035-10-03', 'mon') AS "mon"
FROM DUAL;
Kết quả:
Month month Mon mon ____________ ____________ ______ ______ October october Oct oct
Ngôn ngữ
Ngôn ngữ của tên tháng được xác định rõ ràng bằng NLS_DATE_LANGUAGE
tham số khởi tạo hoặc ngầm định với NLS_LANGUAGE
tham số khởi tạo.
Chúng tôi có thể đặt giá trị của NLS_LANGUAGE
một cách rõ ràng với ALTER SESSION
tuyên bố. Khi chúng tôi làm điều này, nó cũng đặt ngầm giá trị của NLS_DATE_LANGUAGE
tham số.
Tuy nhiên, đặt NLS_DATE_LANGUAGE
tham số không thay đổi giá trị của NLS_LANGUAGE
tham số. Điều này cho phép chúng tôi chỉ định một ngôn ngữ khác cho các phần tử định dạng trả về giá trị chính tả, nếu được yêu cầu.
Đây là ví dụ về cách đặt NLS_DATE_LANGUAGE
sang một ngôn ngữ khác, sau đó lấy lại tên tháng:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(DATE '2037-10-03', 'Month') AS "Full Month Name",
TO_CHAR(DATE '2037-10-03', 'Mon') AS "Short Month Name"
FROM DUAL;
Kết quả:
Full Month Name Short Month Name __________________ ___________________ Oktober Okt
Ngôn ngữ mặc định có thể được ghi đè ở cấp hàm bằng tham số thứ ba chỉ định ngôn ngữ:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(
DATE '2037-10-03',
'Month',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Kết quả:
Octubre
Có nhiều phần tử định dạng khác có sẵn để định dạng giá trị ngày giờ trong Oracle. Xem Danh sách các phần tử định dạng ngày giờ trong Oracle để có danh sách đầy đủ.