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

Cách thêm chỉ báo Meridiem (AM / PM) vào giá trị thời gian trong Oracle

Khi sử dụng TO_CHAR() chức năng định dạng giá trị ngày giờ trong Cơ sở dữ liệu Oracle, bạn có thể thêm chỉ báo meridiem (AM / PM) bằng cách chỉ cần thêm AM hoặc PM sang mô hình định dạng của bạn.

Sau đó, Oracle hiển thị chỉ báo meridiem thích hợp, tùy thuộc vào giá trị thời gian là SA hay CH.

Bạn có thể cung cấp nó bằng bất kỳ chữ hoa hoặc chữ thường nào và có hoặc không có dấu chấm (ví dụ:AM , A.M. am , a.m , vân vân). Sau đó Oracle sẽ hiển thị chỉ báo meridiem như đã chỉ định.

Ví dụ

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

SELECT TO_CHAR(timestamp '2030-12-30 08:30:45', 'HH:MI:SS AM') 
FROM DUAL;

Kết quả:

08:30:45 AM

Trong trường hợp này, thời gian là ante meridiem, và do đó kết quả có AM thêm vào.

SA và CH

Điều tốt về nó là Oracle tính toán cho dù đó là SA hay CH, và hiển thị chỉ báo meridiem áp dụng.

Vì vậy, đây là những gì sẽ xảy ra khi tôi thay đổi thời gian thành giá trị PM:

SELECT TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM') 
FROM DUAL;

Kết quả:

06:30:45 PM

Chỉ báo meridiem hiện là PM, mặc dù chuỗi định dạng của tôi là AM . Oracle đủ thông minh để biết rằng thời gian là hậu meridiem.

Chữ hoa và chữ thường

Thay đổi trường hợp của phần tử định dạng sẽ thay đổi trường hợp của kết quả:

SELECT 
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM') AS "Uppercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS am') AS "Lowercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS Am') AS "Mixed"
FROM DUAL;

Kết quả:

     Uppercase      Lowercase          Mixed 
______________ ______________ ______________ 
06:30:45 PM    06:30:45 pm    06:30:45 Pm    

Dấu chấm so với Không có dấu chấm

Bạn có thể thêm dấu chấm nếu muốn:

SELECT 
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS A.M.') AS "Uppercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS a.m.') AS "Lowercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS A.m.') AS "Mixed"
FROM DUAL;

Kết quả:

       Uppercase        Lowercase            Mixed 
________________ ________________ ________________ 
06:30:45 P.M.    06:30:45 p.m.    06:30:45 P.M.   

Mặc dù vậy, hãy lưu ý rằng điều này ảnh hưởng đến chỉ báo meridiem trường hợp hỗn hợp.

Ngày và giờ của hôm nay

Ở đây, tôi vượt qua SYSDATE để lấy ngày / giờ hiện tại:

SELECT 
    TO_CHAR(SYSDATE, 'HH:MI:SS A.M.')
FROM DUAL;

Kết quả:

07:55:57 P.M.

  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ự động tăng dần cho Oracle

  2. Sử dụng hàm to_date của Oracle cho chuỗi ngày với mili giây

  3. So sánh với ngày tháng trong Oracle sql

  4. Cách giải quyết biểu thức bị thiếu ORA-00936

  5. Oracle sao chép dữ liệu sang một bảng khác