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

2 chức năng để có được năm từ một ngày trong Oracle

Dưới đây là hai hàm có thể được sử dụng để trích xuất năm từ một ngày trong Cơ sở dữ liệu Oracle.

EXTRACT() Chức năng

Bạn có thể sử dụng EXTRACT(datetime) chức năng trích xuất các phần datetime khác nhau từ một giá trị datetime. Điều này bao gồm cả năm.

Đây là một ví dụ:

SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL;

Kết quả:

2030

Đó là YEAR từ khóa trích xuất phần năm từ ngày. Chúng ta có thể lấy các phần ngày tháng khác bằng cách thay đổi nó thành từ khóa có liên quan. Ví dụ:MONTH , DAY , HOUR , MINUTE , v.v.

Chúng tôi cũng có thể sử dụng hàm với các giá trị ngày giờ khác, chẳng hạn như TIMESTAMP , v.v.

Hàm cũng có thể được sử dụng để trả về năm từ một khoảng thời gian. Xem EXTRACT(datetime) Ví dụ về hàm trong Oracle.

TO_CHAR(datetime) Chức năng

Chúng tôi cũng có thể sử dụng TO_CHAR(datetime) hoạt động như một phương pháp thay thế để lấy năm từ một ngày.

Hàm này chấp nhận giá trị datetime hoặc khoảng thời gian làm đối số đầu tiên và mô hình định dạng làm đối số thứ hai. Sau đó, hàm chuyển đổi giá trị thành kiểu dữ liệu VARCHAR2 ở định dạng được chỉ định.

Mô hình định dạng chỉ định định dạng để trả về giá trị ngày giờ / khoảng thời gian. Mô hình định dạng bao gồm một hoặc nhiều phần tử định dạng . Điều này cho phép chúng tôi tạo ra các kết quả một cách cẩn thận để phản ánh định dạng mong muốn của chúng tôi.

Nếu chúng tôi chỉ muốn trả lại năm, chúng tôi có thể sử dụng YYYY phần tử định dạng:

SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL;

Kết quả:

2027

Chúng tôi cũng có thể sử dụng các lựa chọn thay thế cho mô hình định dạng. Ví dụ:chúng ta có thể sử dụng YY để chỉ định một năm có hai chữ số:

SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL;

Kết quả:

27

Trên thực tế, chúng ta có thể có từ một đến bốn Y ký tự, tùy thuộc vào yêu cầu của chúng tôi:

SELECT 
    TO_CHAR(DATE '2027-10-03', 'Y') AS Y,
    TO_CHAR(DATE '2027-10-03', 'YY') AS YY,
    TO_CHAR(DATE '2027-10-03', 'YYY') AS YYY,
    TO_CHAR(DATE '2027-10-03', 'YYYY') AS YYYY
FROM DUAL;

Kết quả:

   Y    YY    YYY    YYYY 
____ _____ ______ _______ 
7    27    027    2027   

Bao gồm dấu phẩy

Chúng ta có thể sử dụng Y,YYY phần tử định dạng nếu chúng ta muốn bao gồm dấu phẩy trong đầu ra:

SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL;

Kết quả:

2,027

Đánh vần của năm

Chúng tôi thậm chí có thể sử dụng YEAR phần tử định dạng để trả về năm được đánh vần:

SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL;

Kết quả:

TWENTY TWENTY-SEVEN

BC Ngày

Chúng tôi cũng có thể phục vụ cho các ngày BC bằng cách đặt trước phần tử định dạng năm của chúng tôi bằng S . Làm điều này, đặt trước kết quả bằng một dấu trừ, nếu có:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
    TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL;

Kết quả:

   SYYYY         SYEAR 
________ _____________ 
-0250    -TWO FIFTY   

Chúng ta có thể sử dụng BC hoặc B.C. định dạng các phần tử để phục vụ cho ngày BC:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'YYYY BC') AS YYYY,
    TO_CHAR(DATE '-250-10-03', 'YEAR BC') AS YEAR,
    TO_CHAR(DATE '250-10-03', 'YYYY BC') AS YYYY,
    TO_CHAR(DATE '250-10-03', 'YEAR BC') AS YEAR
FROM DUAL;

Kết quả:

      YYYY            YEAR       YYYY            YEAR 
__________ _______________ __________ _______________ 
0250 BC    TWO FIFTY BC    0250 AD    TWO FIFTY AD   

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể sử dụng truy vấn LIKE trong Câu lệnh chuẩn bị sẵn của JDBC?

  2. Số ngày thứ sáu giữa hai ngày

  3. Hàm REGEXP_REPLACE () trong Oracle

  4. Tăng tốc to_sql () khi ghi Pandas DataFrame vào cơ sở dữ liệu Oracle bằng SqlAlchemy và cx_Oracle

  5. Lỗi ORA-12514 sau khi khởi động lại máy chủ