我正在研究使用换档模式EG 7pm到7am的程序 我有以下声明
SELECT MAX(Number) from LadleControl where Shift = 'Night Shift' and DateTime between @Date1 and @Date2
我已将日期时间设置如下
DateTime startDate = DateTime.Today.AddHours(19).AddMinutes(1);
DateTime endDate = DateTime.Today.AddHours(30).AddMinutes(59);
问题是当它超过12日DateTime.Todays`日期更改时,2日期参数也是如此。
是否可以尝试将日期时间保留在晚上7点到早上7点,而不会在上午12点更改。
我已经尝试在日期进行硬编码并且这有效但是日期将需要在不同日期的每个班次开始时进行更改。
答案 0 :(得分:1)
如果我已正确理解问题
var now = DateTime.UtcNow;
DateTime startDate;
DateTime endDate;
if (now.Hour < 7)
startDate = now.Date.AddDays(-1).AddHours(19).AddMinutes(1);
else
startDate = now.Date.AddHours(19).AddMinutes(1);
endDate = startDate.AddHours(11).AddMinutes(58);
答案 1 :(得分:1)
如果您选择“今天”,并添加30小时,您将“明天”到达,因此该行为是设计使然。
您可能希望使用DateTime构造函数创建startDate和endDate,提供年,月,日,小时和分钟等。