欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > MySQL去除重疊時間求時間差和的實現

MySQL去除重疊時間求時間差和的實現

熱門標簽:話務外呼系統怎么樣 智能外呼系統復位 大眾點評星級酒店地圖標注 拉卡拉外呼系統 臨清電話機器人 400電話可以辦理嗎 外東北地圖標注 高清地圖標注道路 云南電商智能外呼系統價格

         我個人并不推薦在實際開發中使用存儲過程,充滿了各種的不方便,之所以寫這東西,全在于學習,如果有高手看到我的內容有問題,可以隨時指出或向我開炮。 

需求:

        在生產中常常出現計算兩個時間差的業務,比如總宕機時間、總開通會員時間等等。。。但是這些時間往往不是連貫的,斷斷續續,甚至可能會出現重疊的情況。無法直接求出時間差。

例如:

 開車:

        一開始,我想的是用單條SQL實現,例如:↓

SELECT TIMESTAMPDIFF(MINUTE, '2021-08-19 14:30:00', '2021-08-19 15:00:00') FROM DUAL;

 我發現,數據庫數據千千萬,不可能這樣,也不可能用UNION這種東西去拼接,數據很多,就一定會有循環,所以,在不使用Java語言的情況下,我選擇嘗試用存儲過程來解決以下這個問題。

思路:

         首先,一次進入循環的數據不會進行計算,防止后邊的數據和它有重疊,

        從第二條數據開始,就要判斷開始時間是否和上一個數據重疊,如果重疊,則校驗結束時間是否也重疊,如果重疊我就啥也不干,不重疊,則把這個值賦給上一次的數據的結束時間。

        如果開始時間不再范圍內,那么需要判斷開始時間是在上一次時間的之前還是之后

        如果這個范圍之前,把這個值賦給上一次的數據的開始時間。

        在這個范圍之后,計算并賦值

        最后一次循環也要計算并賦值

實現:        

首先創建表,模擬數據

CREATE TABLE test01 (
  id int(32) unsigned NOT NULL AUTO_INCREMENT,
  start_time datetime NOT NULL,
  end_time datetime NOT NULL,
  PRIMARY KEY (`id`)
) 
 
INSERT INTO test01(id, start_time, end_time) VALUES (1, '2021-08-18 16:27:51', '2021-08-18 17:27:59');
INSERT INTO test01(id, start_time, end_time) VALUES (2, '2021-08-18 17:20:26', '2021-08-18 20:10:37');
INSERT INTO test01(id, start_time, end_time) VALUES (3, '2021-08-18 22:05:57', '2021-08-18 23:55:20');

 

 創建存儲過程:

CREATE PROCEDURE sumTime()
BEGIN
    -- 定義變量 
 
    -- 是否首次
    DECLARE is_old int(1) DEFAULT 0;
 
    -- 上一次數據
	DECLARE old_start_time datetime;
	DECLARE old_end_time datetime;
 
	-- 本次數據
	DECLARE start_time datetime;
	DECLARE end_time datetime;
 
	-- 返回結果
	DECLARE num int(32) DEFAULT 0;
 
	-- 循環結束開關
	DECLARE done int DEFAULT 0;
 
	-- 創建游標(查詢數據庫數據)
	DECLARE list CURSOR FOR SELECT a.start_time, a.end_time FROM test01 a;
 
    -- 定義最后一次循環時設置 循環結束開關 為 1
	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
 
	-- 開啟游標
	OPEN list;
 
		-- 開啟循環
		posLoop:LOOP
			-- 取值 將當前循環的值取出 賦值給當前數據變量
			FETCH list INTO start_time,end_time;
			-- 判斷是否首次
			if (is_old = 0) THEN 
 
				SET is_old = 1;
				SET old_start_time = start_time;
				SET old_end_time = end_time;
 
			-- 否則
			ELSE
				-- 校驗是否在區間內
				 if (start_time >= old_start_time AND start_time = old_end_time) THEN
 
					-- 校驗結束時間是否不在在區間內
				   if (end_time  old_start_time OR end_time > old_end_time) THEN
						SET old_end_time = end_time;
				   END IF;
 
				 -- 否則
				 ELSE
 
				   if (start_time  old_start_time )  THEN
 
						SET old_start_time = start_time;
 
					 ELSE
 
						SET num = num + TIMESTAMPDIFF(MINUTE, old_start_time, old_end_time);
						SET old_start_time = start_time;
						SET old_end_time = end_time;
					 END IF;
				 END IF;
			END IF;
			-- 校驗是否最后一次循環
			IF done=1 THEN 
			    SET num = num + TIMESTAMPDIFF(MINUTE, old_start_time, old_end_time);
			    LEAVE posLoop;
			END IF;
		-- 結束循環	
		END LOOP posLoop;
	-- 關閉游標 
	CLOSE list;
	SELECT num;
END;
-- 調用存儲過程
call sumTime();

 

-- 刪除存儲過程
drop procedure if exists sumTime;

到此這篇關于MySQL去除重疊時間求時間差和的實現的文章就介紹到這了,更多相關MySQL 求時間差和內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL 到底是如何做到多版本并發的?
  • mysql過濾復制思路詳解
  • MySQL 外鍵(FOREIGN KEY)用法案例詳解
  • MySQL如何利用存儲過程快速生成100萬條數據詳解
  • Python接口自動化淺析pymysql數據庫操作流程
  • MySQL事務控制流與ACID特性
  • Mysql使用存儲過程快速添加百萬數據的示例代碼
  • Mysql數據庫中datetime、bigint、timestamp來表示時間選擇,誰來存儲時間效率最高
  • MySQL的全局鎖和表級鎖的具體使用
  • 基于Redo Log和Undo Log的MySQL崩潰恢復解析

標簽:定西 三明 揚州 福州 溫州 山西 阿里 無錫

巨人網絡通訊聲明:本文標題《MySQL去除重疊時間求時間差和的實現》,本文關鍵詞  MySQL,去除,重疊,時間,求,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL去除重疊時間求時間差和的實現》相關的同類信息!
  • 本頁收集關于MySQL去除重疊時間求時間差和的實現的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    色妞www精品视频| 亚洲欧美日韩国产另类专区 | 久久国产乱子精品免费女| 国产吃瓜黑料一区二区| 色婷婷亚洲精品| 综合电影一区二区三区| 成人av网址在线| 美女福利视频在线观看| 国产精品久久久久久久岛一牛影视 | 经典一区二区三区| 久久久久久久久久久久| 欧美sm美女调教| 麻豆精品视频在线| 国产三级av在线播放| 久久久另类综合| 国产精品综合av一区二区国产馆| 懂色av蜜桃av| 国产亚洲综合av| 国产福利视频一区二区三区| 青青青手机在线视频| 国产精品丝袜在线| 成人激情小说网站| 在线日韩av片| 亚洲国产精品自拍| 网站免费在线观看| 2021国产精品久久精品| 国产盗摄一区二区| 丰满亚洲少妇av| 日本黄色小说视频| 一区二区三区四区中文字幕| 人妻互换一二三区激情视频| 制服丝袜成人动漫| 麻豆专区一区二区三区四区五区| 日本少妇高潮喷水xxxxxxx| 久久久亚洲午夜电影| 国产不卡视频在线播放| 色综合天天天天做夜夜夜夜做| 亚洲另类在线视频| 国产女人18毛片水真多18| 91精品国产综合久久精品性色| 日本aⅴ免费视频一区二区三区| 一级黄色性视频| 国产精品久久久久久一区二区三区| 波多野结衣一区二区三区| 欧美中文字幕久久| 三级亚洲高清视频| 欧美福利在线视频| 亚洲一区中文在线| 在哪里可以看毛片| 中文字幕一区二区三中文字幕| 中文字幕制服丝袜| 久久综合九色综合97婷婷女人 | 综合色天天鬼久久鬼色| 国产精品熟妇一区二区三区四区| 日韩精品专区在线影院重磅| 国产v综合v亚洲欧| 欧美二区三区的天堂| 国产在线观看免费一区| 色美美综合视频| 日韩1区2区3区| 亚洲精品一区二区三区在线播放| 一区二区三区精密机械公司| 精品无码国产污污污免费网站| 日韩美女啊v在线免费观看| 老司机午夜免费福利| 国产视频亚洲色图| 久久久久亚洲AV成人网人人小说| 久久综合网色—综合色88| 韩国三级丰满少妇高潮| 久久综合九色综合97婷婷| 久久久精品人妻一区二区三区| 久久久亚洲综合| 亚洲av无码专区在线播放中文| 国产香蕉久久精品综合网| 好吊操视频这里只有精品| 久久精品欧美日韩| 少妇一级淫免费观看| 国产精品福利电影一区二区三区四区| 中文字幕乱码一区| 中文字幕一区av| 手机看片福利视频| 亚洲成人免费观看| 久久久久99精品成人片试看| 青青草97国产精品免费观看 | 欧美www视频| 黑人性生活视频| 日本一区二区免费在线| 色天使在线视频| 一区二区三区精品久久久| 另类综合日韩欧美亚洲| 欧美日韩精品一区二区三区四区 | 国产真实乱在线更新| 日本欧美在线观看| 欧洲av一区二区嗯嗯嗯啊| 国产成人夜色高潮福利影视| 日韩欧美黄色影院| 中文字幕永久免费| 综合久久一区二区三区| 精品亚洲aⅴ无码一区二区三区| 午夜视频在线观看一区二区 | 国产一区三区三区| 日韩一区二区视频在线观看| 91麻豆swag| 中文字幕中文字幕中文字幕亚洲无线| 免费看日本黄色片| 日本成人中文字幕| 91精品国产色综合久久| 日本xxxx免费| 亚洲激情自拍偷拍| 91精品国自产在线偷拍蜜桃| 国产高清不卡一区| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美性xxxx图片| 婷婷成人综合网| 91麻豆精品国产91久久久久久| 91亚洲资源网| 亚洲视频 欧洲视频| 天海翼在线视频| 国产成人aaa| 国产蜜臀av在线一区二区三区| 美国黑人一级大黄| 青青草伊人久久| 日韩三级中文字幕| 欧美精品黑人猛交高潮| 日韩精品91亚洲二区在线观看| 在线成人小视频| 99re这里只有| 日韩**一区毛片| 欧美va亚洲va国产综合| 野外性满足hd| 看电影不卡的网站| 26uuu亚洲综合色欧美| 免费看黄色av| 国产经典欧美精品| 国产精品高清亚洲| 在线观看日韩毛片| 天堂va欧美va亚洲va老司机| 亚洲成a人片综合在线| 制服.丝袜.亚洲.中文.综合| 午夜激情久久久| 欧美精品乱码久久久久久按摩| 色婷婷狠狠18禁久久| 婷婷久久综合九色综合绿巨人| 日韩一区二区在线播放| 亚洲色成人网站www永久四虎| 国产在线精品免费| 亚洲欧洲av另类| 欧美三级资源在线| 真人bbbbbbbbb毛片| 国产原创一区二区| 国产精品久久久久久久久动漫| 日本韩国欧美国产| 污片免费在线观看| 精品一区二区三区欧美| 国产精品情趣视频| 欧美伊人久久大香线蕉综合69| 日本一区二区免费视频| 久久精品国产免费看久久精品| 国产欧美一区二区三区鸳鸯浴 | 激情久久五月天| 国产欧美1区2区3区| 在线观看区一区二| 欧美日韩一区二区三区四区五区六区| 日本美女一区二区| 国产欧美一区二区在线| 欧美亚州韩日在线看免费版国语版| 欧美肉大捧一进一出免费视频| 国产又黄又大久久| 中文字幕字幕中文在线中不卡视频| 欧美日韩一级大片网址| 这里只有久久精品| 成人动漫在线一区| 偷窥国产亚洲免费视频| 国产亚洲va综合人人澡精品| 91福利精品视频| 久久久久亚洲av无码专区桃色| 国产精品1区2区| 亚洲国产精品久久久男人的天堂| 精品国产成人在线影院| 日本高清免费不卡视频| 成人无码www在线看免费| 粉嫩嫩av羞羞动漫久久久| 天天综合天天做天天综合| 欧美激情综合在线| 7777精品伊人久久久大香线蕉超级流畅 | 欧美成人性福生活免费看| 九九热视频在线免费观看| 亚洲国产精品第一页| 国内精品免费**视频| 亚洲国产日韩av| 亚洲国产精品传媒在线观看| 欧美精选午夜久久久乱码6080| 日韩亚洲欧美中文字幕| 国产+高潮+白浆+无码| 高清不卡在线观看| 热久久国产精品| 亚洲精品亚洲人成人网在线播放| 亚洲精品一区二区三区香蕉| 欧美午夜一区二区三区免费大片| 精品人体无码一区二区三区|