2017-01-16 4 views
9

नहीं है वर्तमान में मेरे पास एक मास्टर रोटा है जो नियुक्तियों को समय और दिन के साथ संग्रहीत कर रही है लेकिन DATE को नहीं। SQL सर्वर डाटाबेस मास्टर रोटा नियुक्तियों यह DAYPILOT कैलेंडर नियंत्रण के माध्यम से बनाई गई है के लिए नीचे की तरह लग रहाडेपिलॉट एसक्यूएल - नियुक्तियों की प्रतिलिपि बनाना जिनके पास दिनांक

enter image description here

enter image description here आप देख सकते हैं समय संग्रहीत नहीं है लेकिन एक को DATE लेकिन यह दिवस भंडारण है नहीं । ईजी दिवस 0 रविवार है, दिन 1 सोमवार इत्यादि है ....

मैं यूआई में एक बटन जोड़ना चाहता हूं जो मास्टर रोटा से नियुक्तियों को प्रतिलिपि में लाइव रोटा पर प्रतिलिपि करेगा, दिनांक

ईजी दिन 1 (सोमवार) को मास्टर रोटा से एक नियुक्ति लाइव रोटा तालिका में डाली जानी चाहिए, लेकिन डेपिलॉट कैलेंडर नियंत्रण से वर्तमान सप्ताह की तारीख में जोड़ना ईजी लाइव रोटा तालिका में असाइनमेंट शुरू होगा 2016 -01-16 09:30। इसे डेपिलोट कैलेंडर में सप्ताह की वर्तमान तिथि की जांच करने की आवश्यकता होगी और फिर लाइव टेबल में डालें।

क्या यह संभव है? मैं वर्तमान दिनांक की जांच कैसे कर सकता हूं और यह सुनिश्चित कर सकता हूं कि DATE डीबी से दिन के क्षेत्र का उपयोग करके सही दिन से मेल खाता हो? ईजी दिवस 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

यहाँ के लिए वर्तमान एसक्यूएल एसक्यूएल केवल आरंभ और समाप्ति तिथि प्राप्त करने के लिए समाधान है/वर्तमान सप्ताह में निर्दिष्ट काम करने के दिन के लिए बार: यहाँ

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

(सुनिश्चित नहीं है कि यह वही है जो आप चाहते हैं लेकिन यह एक शुरुआत है, कृपया मुझे बताएं कि क्या यह आवश्यक नहीं है ements ...)

संबंधित मुद्दे