2017-01-16 22 views
9

當前我有一個主要的rota,它與TIME和DAY一起存儲約會,但不包括DATE。 SQL Server數據庫看起來像下面的主羅塔任命它通過DAYPILOT日曆控件創建DayPilot SQL - 複製不具有日期的約會

enter image description here

enter image description here 正如你可以看到有儲存時間,但沒有一個日期,但它是存儲節。 EG第0天是星期日,第1天是星期一等......

我想添加一個按鈕到UI,它將複製從主rota的約會到現場rota考慮到DATES

EG從第1天(星期一)的主輪狀病毒約定個應該被插入LIVE輪狀病毒表,但在當前周的從Daypilot日曆控制EG的DATE添加在LIVE ROTA表中的分配開始將是2016 -01-16 09:30。它需要檢查daypilot日曆中的當前日期,然後插入到實時表中。

這可能嗎?我該如何檢查當前的DATE,並確保DATE使用數據庫中的day字段匹配正確的日期? E.G第0天,第1天等。

碩士羅塔創建

public void CreateAssignment(DateTime start, DateTime end, int location, int  week, string person, string note, DayOfWeek day) 
    { 
     using (DbConnection con = CreateConnection()) 
     { 
      con.Open(); 
      //string id = ""; 

      var cmd = CreateCommand("insert into [master_rota] ([AssignmentStart], [AssignmentEnd], [LocationId], [PersonId], [AssignmentNote], week, day) values (@start, @end, @location, @person, @note, @Week, @day)", con); 
      AddParameterWithValue(cmd, "start", start.TimeOfDay); 
      AddParameterWithValue(cmd, "end", end.TimeOfDay); 
      AddParameterWithValue(cmd, "location", location); 
      AddParameterWithValue(cmd, "week", week); 
      AddParameterWithValue(cmd, "person", person); 
      AddParameterWithValue(cmd, "note", note); 
      if (day == DayOfWeek.Saturday) 
      { 
       AddParameterWithValue(cmd, "day", day - 6); 
      } 
      else 
      AddParameterWithValue(cmd, "day", day + 1); 

      cmd.ExecuteScalar(); 

     } 
    } 
+0

有誰知道這件事嗎? –

回答

3

這裏當前SQL是一個SQL只是獲取的開始和結束日期的解決方案/次在本週指定的工作日:

SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) + day 
     - DATEPART(dw, GETDATE()) + [AssignmentStart] AS [StartInCurrentWeek], 
     DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) + day 
     - DATEPART(dw, GETDATE()) + [AssignmentEnd] AS [EndInCurrentWeek] 
FROM [master_rota]; 

演示在這裏:http://rextester.com/URJP8148

(不知道這是否正是你想要的,但它是一個開始,請讓我知道如果它不符合要求對此語句...)