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

Oracle:Số ngày giữa hai ngày và Loại trừ các ngày trong tuần cách xử lý số âm

Phỏng theo câu trả lời của tôi ở đây:

Nhận số ngày giữa các ngày Thứ Hai của cả hai tuần (sử dụng TRUNC( datevalue, 'IW' ) dưới dạng NLS_LANGUAGE phương pháp độc lập để tìm Thứ Hai trong tuần) sau đó thêm ngày trong tuần (Thứ Hai =1, Thứ Ba =2, v.v., tối đa là 5 để bỏ qua các ngày cuối tuần) cho ngày kết thúc và trừ ngày trong tuần cho ngày bắt đầu. Như thế này:

SELECT ( TRUNC( end_date, 'IW' ) - TRUNC( start_date, 'IW' ) ) * 5 / 7
       + LEAST( end_date - TRUNC( end_date, 'IW' ) + 1, 5 )
       - LEAST( start_date - TRUNC( start_date, 'IW' ) + 1, 5 )
          AS WeekDaysDifference
FROM   your_table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo UUID phiên bản 4 (ngẫu nhiên) trên Oracle?

  2. Oracle tương đương với MySQL CHÈN BỎ QUA?

  3. chọn N hàng trên cùng từ một bảng

  4. Cách duy trì LARGE BLOBs (> 100MB) trong Oracle bằng Hibernate

  5. Cách tốt nhất để rút ngắn chuỗi UTF8 dựa trên độ dài byte