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

Làm thế nào để đi trước 14 ngày so với ngày nhất định tránh các ngày nghỉ lễ

Tôi sẽ tính toán Ngày bằng cách sử dụng một hàm như bên dưới (mà tôi sử dụng)

public static DateTime AddBusinessDays(DateTime date, int days)
 {
    if (days == 0) return date;

   if (date.DayOfWeek == DayOfWeek.Saturday)
   {
    date = date.AddDays(2);
    days -= 1;
  }
  else if (date.DayOfWeek == DayOfWeek.Sunday)
  {
    date = date.AddDays(1);
    days -= 1;
  } 



 date = date.AddDays(days / 5 * 7);
 int extraDays = days % 5;

 if ((int)date.DayOfWeek + extraDays > 5)
 {
    extraDays += 2;
 }

int extraDaysForHolidays =-1;
//Load holidays from DB into list
List<DateTime> dates = GetHolidays();

while(extraDaysForHolidays !=0)
{

 var days =  dates.Where(x => x >= date  && x <= date.AddDays(extraDays)).Count;
 extraDaysForHolidays =days;
 extraDays+=days;  
}


return date.AddDays(extraDays);

}

Chưa kiểm tra phần ast có ngày lễ



  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úng tôi có thể hủy truy vấn được cấp cho máy chủ sql không?

  2. So sánh các kiểu dữ liệu hình ảnh trong SQL

  3. Phiên bản Web SQL Server 2008

  4. Thực hiện xử lý lỗi và giao dịch trong SQL Server

  5. Truy vấn máy chủ được liên kết Postgresql rất chậm