我想要一個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作爲下一個工作日。
我想要一個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作爲下一個工作日。
使用本
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
我也曾經有過這樣的要求,但是這是不行的,如果你的要求也將包括節假日。那麼你必須連接你的節日主表,並且必須在應用程序端進行。
,如果我只想要週末的日子呢? –
@ N.R ..如果你只考慮週末(sat-sun),那麼上面的查詢就可以正常工作。 – Hytool
請使用下面的代碼,此代碼將返回到下一個工作日的日期(不包括週六和週日)。
我用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。
讓我知道你是否面對任何查詢/關注此事。
謝謝!
您的意思是5個工作日,對吧? – QueryLars
是的..星期一至星期五..星期一至星期五,星期一至星期五 –
解決方案是否必須在SQL中,或者您可以在PHP中進行調整然後更新記錄? – ymas