久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL中怎么計算工作日

152次閱讀
沒有評論

共計 1888 個字符,預計需要花費 5 分鐘才能閱讀完成。

SQL 中怎么計算工作日,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

CREATE FUNCTION Time_Span_of_minutes( 

start_day DATETIME, 

end_day DATETIME) 

RETURNS FLOAT 

BEGIN 

  — 返回按分鐘計算兩段時間的間隔,采用逐日靠近的方法求解,一天按 8 小時 480 分鐘計算,周末不計,不考慮法定節假日。 

  — 如果起始日期在周末,則計算當天時間。 

  DECLARE minutes FLOAT;   

  DECLARE next_day DATETIME; 

  SET minutes=0.0; 

  SET next_day=start_day; 

  IF(TIMESTAMPDIFF(DAY,start_day,end_day) 1.0) THEN 

  SET minutes=minutes+TIMESTAMPDIFF(MINUTE,start_day,end_day); 

  ELSE 

  WHILE TIMESTAMPDIFF(DAY,next_day,end_day) =1.0 DO 

  IF ((DAYOFWEEK(next_day)=7) OR (DAYOFWEEK(next_day)=1)) THEN 

  SET next_day=next_day+INTERVAL 1 DAY; 

  ELSE 

  SET next_day=next_day+INTERVAL 1 DAY; 

  SET minutes=minutes+480.0; 

  END IF; 

   END WHILE; 

  SET minutes=minutes+TIMESTAMPDIFF(MINUTE,next_day,end_day); 

  IF ((DAYOFWEEK(start_day)=7) OR (DAYOFWEEK(start_day)=1)) THEN 

  SET minutes=minutes+TIMESTAMPDIFF(MINUTE,start_day,CONVERT(CONCAT(SUBSTRING(start_day FROM 1 FOR 10), 17:30:00 ),DATETIME)); 

  END IF; 

  END IF; 

  RETURN minutes; 

END; 

CREATE FUNCTION Time_Span_of_minutes(

start_day DATETIME,

end_day DATETIME)

RETURNS FLOAT

BEGIN

  — 返回按分鐘計算兩段時間的間隔,采用逐日靠近的方法求解,一天按 8 小時 480 分鐘計算,周末不計,不考慮法定節假日。

  — 如果起始日期在周末,則計算當天時間。

  DECLARE minutes FLOAT;

  DECLARE next_day DATETIME;

  SET minutes=0.0;

  SET next_day=start_day;

  IF(TIMESTAMPDIFF(DAY,start_day,end_day) 1.0) THEN

  SET minutes=minutes+TIMESTAMPDIFF(MINUTE,start_day,end_day);

  ELSE

  WHILE TIMESTAMPDIFF(DAY,next_day,end_day) =1.0 DO

  IF ((DAYOFWEEK(next_day)=7) OR (DAYOFWEEK(next_day)=1)) THEN

  SET next_day=next_day+INTERVAL 1 DAY;

  ELSE

  SET next_day=next_day+INTERVAL 1 DAY;

  SET minutes=minutes+480.0;

  END IF;

  END WHILE;

  SET minutes=minutes+TIMESTAMPDIFF(MINUTE,next_day,end_day);

  IF ((DAYOFWEEK(start_day)=7) OR (DAYOFWEEK(start_day)=1)) THEN

  SET minutes=minutes+TIMESTAMPDIFF(MINUTE,start_day,CONVERT(CONCAT(SUBSTRING(start_day FROM 1 FOR 10), 17:30:00 ),DATETIME));

  END IF;

  END IF;

  RETURN minutes;

END;

關于 SQL 中怎么計算工作日問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計1888字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 陕西省| 略阳县| 澎湖县| 宁都县| 那坡县| 康保县| 双江| 广东省| 平湖市| 黄陵县| 叙永县| 遵化市| 永昌县| 五常市| 莱州市| 玛纳斯县| 措勤县| 宁国市| 韶山市| 广宁县| 东辽县| 马山县| 石首市| 盈江县| 清苑县| 鸡西市| 大名县| 喀喇沁旗| 富锦市| 丹东市| 台中县| 伊宁县| 清镇市| 新津县| 井冈山市| 柳河县| 成都市| 扎鲁特旗| 泉州市| 称多县| 东海县|