2015-10-17 153 views
-1

如何添加除周末和节假日之外的日子(3天)?如何在不包含周末和节假日的日期中添加日期

举例:十月16,2015(星期五)+ 3天=十月21,2015(星期三)

这里是我的查询,但我怎么能排除周末,节假日?那可能吗?

INSERT INTO TEMPORARY(ISBN,title,author,First_Name,Last_Name,STATUS,DATE,Return_Date,UserID) 
VALUES (i,t,a,f,l,1,NOW(),NOW()+ INTERVAL 3 DAY,u); 
+2

您需要一个日历表,将日期标识为假期,周末和工作日。 –

+0

@GordonLinoff一个包含周末和假期日期列表的表格? – kielou

+0

我会选择每个日期有一行的“日历”表,以及关于该日期的信息,例如假日名称以及它是周末还是周末。 –

回答

1

目前尚不清楚您的确切目标是什么?

我的猜测,如果NOW()平日是:

Monday (+3) = Thursday 
Tuesday (+3) = Friday 
Wednesday (+5) = next Monday 
Thursday (+5) = next Tuesday 
Friday (+5) = next Wednesday 
Saturday (+4) = next Wednesday ? 
Sunday (+3) = next Wednesday ? 

如果it is correct那么你的查询可以转化为:

INSERT INTO TEMPORARY(ISBN,title,author,First_Name,Last_Name,STATUS,DATE,Return_Date,UserID) 
VALUES (i,t,a,f,l,1,NOW(),NOW()+ INTERVAL (IF(WEEKDAY(date1) IN (6,0,1),3,IF(WEEKDAY(date1) = 5,4,5))) DAY,u); 

如果您需要检查其他假期和扩展根据官方节日期间日历我完全同意@GordonLinoff评论:你需要额外的表格来保留所有的假期。但即使这种改变使得动态获取正确的日期也不是微不足道的查询。

+0

谢谢先生.. – kielou

相关问题