【发布时间】:2018-08-06 23:37:27
【问题描述】:
如何返回两个日期之间的天数减去该期间的周六和周日数? mysql 上的 DATEDIFF 函数给了我天数,但不排除周末。
例如,我有两列,想添加第三列,这是两者之间的区别。
如果有任何帮助,我将不胜感激。
【问题讨论】:
如何返回两个日期之间的天数减去该期间的周六和周日数? mysql 上的 DATEDIFF 函数给了我天数,但不排除周末。
例如,我有两列,想添加第三列,这是两者之间的区别。
如果有任何帮助,我将不胜感激。
【问题讨论】:
试试这个
声明@Date1 日期时间,@Date2 日期时间;
选择@Date1 = '8/1/2018',@Date2 = '8/7/2018'
选择 Datediff(dd, @Date1 , @Date2) - (Datediff(wk, @Date1 , @Date2) * 2) - Datepart(dw, @Date1) = 1 Then 1 Else 0 End + Datepart(dw, @Date2) = 1 Then 1 Else 0 End
的情况【讨论】:
DROP FUNCTION IF EXISTS GetNumberOfDays;
CREATE FUNCTION GetNumberOfDays(P_Date1 varchar(20), P_Date2 varchar(20))
RETURNS int(100)
BEGIN
DECLARE x INT;
DECLARE V_Date1 date;
DECLARE V_Date2 date;
SET V_Date1 := STR_TO_DATE(P_Date1, '%d/%m/%Y');
SET V_Date2 := STR_TO_DATE(P_Date2, '%d/%m/%Y');
SET x := 0;
WHILE V_Date1 <= V_Date2
DO
IF (DAYOFWEEK(V_Date1) != 7 AND DAYOFWEEK(V_Date1) != 1)
THEN
BEGIN
SET x = x + 1;
END;
END IF;
SET V_Date1 := DATE_ADD(V_Date1, INTERVAL 1 DAY);
END WHILE;
RETURN x;
END;
SELECT GetNumberOfDays('01/08/2018', '11/08/2018')
【讨论】: