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

Khác biệt. giữa các ngày - SQL plus

Tiêu đề của câu hỏi bao gồm "SQL plus", ngụ ý Oracle đối với tôi.

Oracle không có hàm DATEDIFF. Phương pháp đơn giản nhất để xác định số ngày giữa 2 ngày bằng Oracle là lấy ngày kia trừ đi một ngày.

Select item, datebought, datesold, datesold-datebought as days from auctions;

Oracle lưu trữ cả thông tin ngày và giờ trong một trường ngày tháng. Thực tế phổ biến là lưu trữ các ngày bị cắt ngắn đến nửa đêm trong các trường ngày tháng trong Oracle nếu bạn không quan tâm đến thời gian.

Nếu ngày của bạn đã bị cắt ngắn đến nửa đêm, thì giá trị được tính sẽ là một số nguyên.

Nhưng nếu ngày được lưu trữ của bạn bao gồm thông tin thời gian, thì bạn có thể muốn cắt bớt giá trị để nhận được giá trị tích phân. Tôi nghi ngờ rằng bạn muốn cắt bớt mỗi ngày trước phép trừ, chẳng hạn như nếu mua vào một ngày, thì bất kỳ thời điểm nào trong ngày hôm sau sẽ được tính là 1 ngày. Oracle cắt bớt ngày đến nửa đêm.

select item, datebought, datesold, trunc(datesold)-trunc(datebought) as days from auctions;

Tôi đồng ý với WarrenT rằng bảng của bạn không nên có cột ngày không chuẩn hóa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:KHÔNG PHẢI LÀ NHÓM THEO LỖI BIỂU DIỄN

  2. Thực thi một thủ tục được lưu trữ của Oracle trong EntityFramework

  3. Cách tránh hai luồng khác nhau đọc các hàng giống nhau từ DB (Hibernate và Oracle 10g)

  4. Mã hóa bên trong oracle

  5. Trả về số từ câu lệnh Oracle Select sau ngày phân tích cú pháp