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

Làm thế nào để loại bỏ các Zeros hàng đầu khỏi Ngày trong Oracle

Trong Cơ sở dữ liệu Oracle, bạn có thể sử dụng fm (chế độ điền) công cụ sửa đổi định dạng để loại bỏ bất kỳ số 0 ở đầu nào có thể được áp dụng cho một ngày. Công cụ sửa đổi định dạng này loại bỏ phần đệm, bao gồm các số 0 ở đầu và khoảng trống ở cuối.

Để sử dụng fm công cụ sửa đổi định dạng, hãy đưa nó vào mô hình định dạng của bạn khi chỉ định cách định dạng ngày tháng. Ví dụ khi sử dụng TO_CHAR() hàm để định dạng ngày tháng hoặc trong các tham số NLS như NLS_DATE_FORMAT khi đặt định dạng ngày cho phiên hiện tại của bạn.

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT 
    TO_CHAR(DATE '2009-08-01', 'DD-MM-YY') AS "Without fm",
    TO_CHAR(DATE '2009-08-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;

Kết quả:

   Without fm    With fm 
_____________ __________ 
01-08-09      1-8-9     

Chúng ta có thể thấy rằng kết quả ban đầu (không có fm modifier) ​​trả về các số 0 ở đầu cho tất cả các phần của ngày tháng. Trong trường hợp này, fm công cụ sửa đổi đã loại bỏ số 0 ở đầu trên cả ba phần ngày.

fm công cụ sửa đổi chỉ ảnh hưởng đến kết quả nếu thực sự có các số 0 đứng đầu trong kết quả.

Đây là một ngày bao gồm các phần ngày chiếm hai chữ số và do đó không có các số 0 ở đầu:

SELECT 
    TO_CHAR(DATE '2029-12-01', 'DD-MM-YY') AS "Without fm",
    TO_CHAR(DATE '2029-12-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;

Kết quả:

   Without fm    With fm 
_____________ __________ 
01-12-29      1-12-29    

Cách chỉ định Chế độ điền vào một số phần ngày

Ví dụ trên đã loại bỏ số 0 ở đầu trên tất cả các phần của ngày tháng. Số 0 ở đầu đã bị xóa khỏi ngày, tháng và năm. Điều này là do, khi chúng ta đặt một fm ở đầu mô hình định dạng, nó ngăn chặn tất cả các số 0 tiếp theo trong kết quả.

Giả sử chúng ta chỉ muốn xóa số 0 đứng đầu của ngày và tháng, nhưng giữ lại nó trên năm. Trong trường hợp này, chúng ta có thể làm như sau:

SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-MM-fmYY')
FROM DUAL;

Kết quả:

1-8-09

fm modifier về cơ bản hoạt động giống như một công tắc. Khi bạn bao gồm một, nó sẽ loại bỏ các số không cho đến cuối hoặc cho đến khi nó gặp một fm khác bổ nghĩa. Nếu có fm thứ hai bổ nghĩa, sau đó các số không ở đầu không bị triệt tiêu ngoài thời điểm đó, v.v.

Đây là những gì sẽ xảy ra khi chúng tôi bao gồm ba fm bổ ngữ - một trước mỗi phần ngày:

SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-fmMM-fmYY')
FROM DUAL;

Kết quả:

1-08-9

Vì vậy, trong trường hợp này, fm sửa đổi về cơ bản đã được bật, sau đó bị vô hiệu hóa, sau đó được bật lại.

Tham số NLS

Bạn cũng có thể chỉ định chế độ điền vào các tham số NLS của mình, chẳng hạn như NLS_DATE_FORMAT Tham số khi đặt định dạng ngày cho phiên hiện tại của bạn.

Ví dụ:

ALTER SESSION SET NLS_DATE_FORMAT = 'fmDD-MM-fmRR';

SELECT DATE '2009-08-07' FROM DUAL;

Kết quả:

7-8-09

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thay đổi cấu trúc bảng trong Oracle?

  2. Làm cách nào để bạn thực thi SQL từ bên trong một tập lệnh bash?

  3. 11gR2 Compression Advisor =Ác ma

  4. Cách tiếp tục xử lý vòng lặp con trỏ sau ngoại lệ trong Oracle

  5. cách sử dụng các mục nhập tns với trình điều khiển macromedia cho Oracle