Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách loại bỏ phần đệm bên phải cho tên ngày trong Oracle

Trong Cơ sở dữ liệu Oracle, khi sử dụng TO_CHAR() hàm để trả về tên ngày từ một ngày, phần đệm sẽ được thêm vào tên ngày nếu nó ngắn hơn tên ngày hợp lệ dài nhất cho ngôn ngữ và lịch nhất định.

Đó là hành vi mặc định. Tuy nhiên, bạn có thể thay đổi điều này nếu muốn.

Để loại bỏ phần đệm này, tất cả những gì bạn cần làm là thêm phần tử định dạng tên ngày vào trước với fm .

Ví dụ

Giả sử chúng ta chạy đoạn mã sau:

SELECT 
    TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;

Kết quả:

Friday   , 08 March     2030

Chúng ta có thể thấy rằng dấu cách ở cuối đã được thêm vào tên ngày và tên tháng.

Chúng ta có thể sử dụng fm công cụ sửa đổi định dạng để loại bỏ khoảng trắng này:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;

Kết quả:

Friday   , 08 March     2030

Vấn đề đã được giải quyết.

Lưu ý rằng điều này cũng có lợi ích phụ là loại bỏ các dấu cách ở cuối từ tên tháng.

Nó cũng loại bỏ số 0 đứng đầu trong số ngày.

Chúng tôi có thể sử dụng nhiều fm bổ ngữ để cụ thể hơn về vùng đệm mà chúng tôi muốn loại bỏ. Mỗi fm trong mô hình định dạng của chúng tôi, bật và tắt chế độ điền.

Giả sử chúng ta muốn loại bỏ các khoảng trắng ở cuối tên ngày và tháng, nhưng chúng ta muốn giữ lại số 0 đứng đầu trên số ngày. Trong trường hợp đó, chúng ta có thể làm như sau:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;

Kết quả:

Friday   , 08 March     2030

Lý do chúng tôi sử dụng fm thứ ba (trước MONTH ) là vì fm thứ hai đã bật lại phần đệm cho tất cả các phần tử định dạng tiếp theo, điều này sẽ dẫn đến việc giữ lại các khoảng trống ở cuối trong tháng.

Đây là ý tôi:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;

Kết quả:

Friday   , 08 March     2030

Trong trường hợp này, phần đệm đã bị loại bỏ khỏi tên ngày và sau đó được bật lại cho số ngày, tháng và năm.

May mắn thay, chúng ta có thể thêm bao nhiêu fm bổ ngữ khi chúng ta cần để có được kết quả mong muốn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tắt và khởi động phiên bản Oracle

  2. Làm cách nào để xóa các bản sao khỏi danh sách được phân tách bằng dấu phẩy bằng regex trong Oracle nhưng tôi không muốn các giá trị trùng lặp?

  3. vấn đề trong việc tìm kiếm danh sách các tệp trong thư mục

  4. Làm cách nào để kiểm tra xem con trỏ có trả về bất kỳ bản ghi nào trong oracle hay không?

  5. Truy vấn kiểm tra kích thước bảng trong cơ sở dữ liệu Oracle