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

Cách lấy ngày hiện tại trong Oracle

Vấn đề:

Bạn muốn lấy ngày hiện tại (không tính thời gian) trong Oracle.

Giải pháp 1 (nếu bạn không bận tâm đến các số không là thời gian):

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Ví dụ:nếu bạn chạy truy vấn này vào ngày 16 tháng 6 năm 2021, bảng kết quả sẽ giống như sau:

current_date
2021-06-16T00:00:00Z

Thảo luận:

Oracle không có kiểu dữ liệu chỉ lưu trữ ngày mà không có thời gian. Nhưng nếu bạn không bận tâm đến các số không ở vị trí của thời gian, bạn có thể chỉ cần lưu trữ một ngày trong DATE datatype (lưu trữ cả ngày và giờ trong Oracle). Để lấy ngày và giờ hiện tại dưới dạng DATE giá trị, bạn có thể chỉ cần sử dụng CURRENT_DATE . Để loại bỏ thời gian (và thay vào đó là các số 0), bạn cần cắt bớt ngày:

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Giải pháp 2 (nếu bạn chỉ muốn ngày chứ không phải số 0 ở vị trí của thời gian):

SELECT
  TO_CHAR(CURRENT_DATE, 'yyyy-MM-dd') AS current_date
FROM dual;

Ví dụ:Nếu bạn chạy truy vấn này vào ngày 16 tháng 6 năm 2021, bảng kết quả sẽ giống như sau:

current_date
2021-06-16

Thảo luận:

Để nhận văn bản của VARCHAR2 nhập lưu trữ ngày tháng, bạn có thể sử dụng TO_CHAR() chức năng trong Oracle. Bạn cần chỉ định dấu ngày / giờ được chuyển đổi làm đối số đầu tiên và ở định dạng mà bạn muốn lưu trữ ngày làm đối số thứ hai.

Vì bạn muốn ngày hiện tại, đối số đầu tiên là CURRENT_DATE . Đối số thứ hai là sự lựa chọn của bạn. Ví dụ:'yyyy-MM-dd' là viết tắt của 'year-month-day', trong đó tháng là số chứ không phải văn bản. Bảng dưới đây trình bày một số định dạng ngày mẫu và kết quả đầu ra tương ứng cho ngày 16 tháng 6 năm 2021.

định dạng ngày kết quả
'YYYY-MM-DD' 2021-06-16
'YYYY / MM / DD' 2021/06/16
'YYYY MM DD' 2021 06 16
'DD-MON-YYYY' 16-THÁNG 6-2021
'DD-MON-YY' 16-JUN-21
'Tháng Mười DD, YYYY' ngày 16 tháng 6 năm 2021

Bạn có thể đọc thêm về các định dạng ngày tháng tại đâ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. Độ chính xác và Tỷ lệ mặc định cho một số trong Oracle là gì?

  2. Xóa tất cả các bản ghi ngoại trừ bản ghi gần đây nhất?

  3. Cần đặt lại giá trị của chuỗi trong Oracle

  4. Oracle tổng hợp để nối các chuỗi bằng dấu phẩy và về cách viết các tổng hợp tùy chỉnh

  5. Tại sao tôi không thể tạo trình kích hoạt trên các đối tượng do SYS sở hữu?