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

Ngày làm việc tiếp theo (Thứ Hai - Thứ Sáu) trong Oracle?

Những điều này thường được thực hiện với một bảng liệt kê tất cả các ngày làm việc trong một năm chứ không phải là một công thức ngây thơ như:

CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5 
  THEN 1 + (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) 
  ELSE 1 
END --(on monday to thursday this returns 2 to 5, on fri/sat/sun this returns 1)

CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5 
  THEN TRUNC (SYSDATE) + 1 
  ELSE TRUNC (SYSDATE + 4), 'IW')  
END --(on monday to thursday this returns tomorrow's date, on fri/sat/sun it returns next monday's date)

Sử dụng bảng cho phép bạn tính đến những thứ như ngày lễ ngân hàng, ngày lễ quốc gia, lễ hội tôn giáo, ngày bỏ phiếu, ngày tang lễ, ngày nghỉ đột xuất có thể xảy ra vì lý do chính trị hoặc công ty, v.v. Bảo quản bảng sau đó trở thành một nhiệm vụ quan trọng. Truy xuất ngày làm việc tiếp theo về cơ bản là một trường hợp truy vấn bảng cho MIN(date) WHERE date > current_date



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận số lượng giá trị từ Bảng Oracle

  2. Tại sao một từ đồng nghĩa Oracle lại trả về một số hàng khác nhau cho bảng bên dưới?

  3. Tạo bảng Cơ sở dữ liệu trong SQL, lỗi lạ

  4. Sự khác biệt giữa 'YYYY' và 'RRRR' trong Oracle SQL là gì

  5. bản sao resluts