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

Làm thế nào để có được một thế kỷ từ một ngày trong Oracle

Với Cơ sở dữ liệu Oracle, chúng ta có thể sử dụng TO_CHAR(datetime) hàm để trả về thế kỷ từ một giá trị ngày giờ.

Để làm điều này, chúng tôi có thể sử dụng CC phần tử định dạng hoặc SCC phần tử định dạng. Chúng tôi có thể kết hợp chúng với các phần tử định dạng khác để thực hiện những việc như, hiển thị số thứ tự, đánh vần thế kỷ, v.v.

Ví dụ

Dưới đây là một ví dụ sử dụng CC phần tử định dạng để trả về thế kỷ từ một giá trị ngày tháng:

SELECT TO_CHAR(DATE '2030-12-30', 'CC')
FROM DUAL;

Kết quả:

21

Thế kỷ phủ định

Chúng ta có thể sử dụng SCC phần tử định dạng để bao gồm dấu trừ khi chuyển ngày âm:

SELECT TO_CHAR(DATE '-2030-12-30', 'SCC')
FROM DUAL;

Kết quả:

-21

Số thứ tự

Chúng ta có thể thêm TH phần tử định dạng để trả về số thứ tự của thế kỷ.

SELECT TO_CHAR(DATE '2030-12-30', 'CCTH')
FROM DUAL;

Kết quả:

21ST

Chúng tôi cũng có thể thêm văn bản tùy ý để nối từ “Century”:

SELECT TO_CHAR(DATE '2030-12-30', 'CCTH "Century"')
FROM DUAL;

Kết quả:

21ST Century

Lưu ý rằng văn bản được bao quanh bởi dấu ngoặc kép.

Chúng tôi có thể sử dụng cách viết hoa theo yêu cầu:

SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;

Kết quả:

21ST Century

Lưu ý rằng tôi chỉ viết hoa ký tự đầu tiên trong mô hình định dạng. Ý tôi là tôi đã sử dụng Ccth thay vì CCth . Trong khi bạn có thể nghĩ rằng CCth sẽ dẫn đến số thứ tự viết thường, đó không phải là cách nó hoạt động. Đây là những gì sẽ xảy ra khi chúng tôi làm điều đó:

SELECT TO_CHAR(DATE '2030-12-30', 'CCth "Century"')
FROM DUAL;

Kết quả:

21ST Century

Về cơ bản, khi hai ký tự đầu tiên của mô hình định dạng là chữ hoa, kết quả là chữ hoa. Do đó, để tạo chữ hoa tiêu đề, chỉ viết hoa ký tự đầu tiên của mô hình định dạng.

Thế kỷ chính tả

Chúng tôi có thể thêm SP phần tử định dạng để có đánh vần thế kỷ:

SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;

Kết quả:

TWENTY-FIRST Century

Và chúng ta có thể viết hoa theo yêu cầu:

SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;

Kết quả:

21ST Century

Chúng ta có thể bỏ qua TH công cụ định dạng nếu chúng tôi không muốn số thứ tự:

SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;

Kết quả:

Twenty-One

Thế kỷ 20 so với thế kỷ 21

Các quy tắc sau áp dụng liên quan đến thời điểm một ngày được coi là ở thế kỷ 20 so với thế kỷ 21.

  • Nếu 2 chữ số cuối cùng của năm có 4 chữ số nằm trong khoảng từ 01 đến 99 (bao gồm cả), thì thế kỷ sẽ lớn hơn 2 chữ số đầu tiên của năm đó một chữ số.
  • Nếu 2 chữ số cuối của năm có 4 chữ số là 00, thì thế kỷ giống với 2 chữ số đầu tiên của năm đó.

Khái niệm tương tự cũng áp dụng cho các thế kỷ khác, chẳng hạn như thế kỷ 13, thế kỷ 30, v.v.

Ví dụ:

SELECT 
    TO_CHAR(DATE '1999-12-30', 'CC') AS "1999",
    TO_CHAR(DATE '2000-12-30', 'CC') AS "2000",
    TO_CHAR(DATE '1299-12-30', 'CC') AS "1299",
    TO_CHAR(DATE '1300-12-30', 'CC') AS "1300",
    TO_CHAR(DATE '2999-12-30', 'CC') AS "2999",
    TO_CHAR(DATE '3000-12-30', 'CC') AS "3000"
FROM DUAL;

Kết quả:

   1999    2000    1299    1300    2999    3000 
_______ _______ _______ _______ _______ _______ 
20      20      13      13      30      30     

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 đủ.


  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 để sử dụng từ khóa 'as' để làm bí danh cho một bảng trong Oracle?

  2. Cách định cấu hình Máy chủ Glassfish trong Eclipse theo cách thủ công

  3. Số Oracle thành số thập phân C #

  4. làm thế nào để chuyển đổi csv sang bảng trong oracle

  5. Cách tạo tệp cuộn chỉ lệnh sql oracle