2015-07-11 52 views
1

我想要一個mysql DATE_ADD(date_field_column, interval ## ####)方法在下一個工作日跳轉。如何在下一個工作日更新mysql日期列字段。?

Ex. Date1 = 10-07-2015 & Date2 = 20-07-2015 

有總共5天工作日(Mon-Fri)所以我有一個查詢,如果日期欄有日期10-07-2015那麼它應該跳到13-07-2015作爲下一個工作日。

+0

您的意思是5個工作日,對吧? – QueryLars

+0

是的..星期一至星期五..星期一至星期五,星期一至星期五 –

+0

解決方案是否必須在SQL中,或者您可以在PHP中進行調整然後更新記錄? – ymas

回答

1

使用本

IF(
     DAYOFWEEK(dat) = '6' OR DAYOFWEEK(dat) = '7' , 
     IF(DAYOFWEEK(dat)='6', DATE_ADD(dat, INTERVAL + 3 DAY), DATE_ADD(dat, INTERVAL + 2 DAY)), 
     DATE_ADD(dat, INTERVAL + 1 DAY) 
    ) AS newdat 

我也曾經有過這樣的要求,但是這是不行的,如果你的要求也將包括節假日。那麼你必須連接你的節日主表,並且必須在應用程序端進行。

+0

,如果我只想要週末的日子呢? –

+0

@ N.R ..如果你只考慮週末(sat-sun),那麼上面的查詢就可以正常工作。 – Hytool

2

請使用下面的代碼,此代碼將返回到下一個工作日的日期(不包括週六和週日)。

我用SELECT聲明設置示例,以便根據您的要求進行修改。

SELECT DATE_ADD(
     '2015-07-10', INTERVAL 
       IF(DAYNAME('2015-07-10') = 'Saturday', 2, 
         IF(DAYNAME('2015-07-10') = 'Friday', 3, 1) 
           ) DAY); 

注意:此示例使用的日期格式爲YYYY-MM-DD。

讓我知道你是否面對任何查詢/關注此事。

謝謝!

相關問題