本文介绍了如何在没有周六和周日的情况下使DB2中的工作日不同呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个表,其中包含一些日期间隔,如下所示:
|id|group|date_start|date_end|
我想创建一个如下所示的视图:
|id|working_days_diff|
和
|id|group|working_days_diff|
我怎么才能做这样的事呢?谢谢
我在考虑一个自定义函数,如果DAYOFWEEK不是星期六和星期日,它将循环差值和总和中的每一天。但是我不知道怎么做.
推荐答案
CREATE FUNCTION stkqry.WORKING_DAY_DIFF(DATE_START date, DATE_END date)
RETURNS INTEGER
LANGUAGE SQL
BEGIN
DECLARE WORKING_DAYS INTEGER DEFAULT 0;
DECLARE DATE_COUNTER DATE;
SET DATE_COUNTER = DATE_START;
WHILE DAYS(DATE_COUNTER) < DAYS(DATE_END) DO
SET DATE_COUNTER = DATE(days(DATE_COUNTER)+1);
CASE WHEN DAYOFWEEK_ISO(DATE_COUNTER) = 6 THEN
SET WORKING_DAYS = WORKING_DAYS;
WHEN DAYOFWEEK_ISO(DATE_COUNTER) = 7 THEN
SET WORKING_DAYS = WORKING_DAYS;
ELSE
SET WORKING_DAYS = WORKING_DAYS + 1;
END CASE;
END WHILE;
RETURN WORKING_DAYS;
END
这篇关于如何在没有周六和周日的情况下使DB2中的工作日不同呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!