我這邊的mysql資料庫格式內容是
utc
2018-05-14 20:05:00
2018-05-14 20:07:30
2018-05-14 20:08:30
2018-05-14 20:09:30
2018-05-14 20:13:00
2018-05-14 20:16:00
2018-05-14 20:28:00
2018-05-14 20:30:30
2018-05-14 20:33:30
2018-05-14 20:41:30
2018-05-14 20:43:30
我要的計算方式是,如果把以上記錄的時間匯總成一共運行的分鐘, 不能用最后的時間-開始時間,因為中間日期可能會有不連貫的情況。
uj5u.com熱心網友回復:
有高人幫幫忙,這個資料的記錄很大,最好能兼顧下性能。
uj5u.com熱心網友回復:
那針對這個例子,總共運行了多少分鐘?uj5u.com熱心網友回復:
一共運行了,38:30秒uj5u.com熱心網友回復:
一共運行了,38分30秒,版主有辦法計算嗎?uj5u.com熱心網友回復:
舉一個“不能用最后的時間-開始時間” 例子。uj5u.com熱心網友回復:
舉一個“不能用最后的時間-開始時間” 例子。
2018-05-14 20:05:00
2018-05-14 20:07:30 2:30
2018-05-14 20:08:30 1
2018-05-14 20:09:30 1
2018-05-14 20:28:00 12
2018-05-14 20:30:30 2:30
2018-05-14 20:33:30 3
2018-05-14 20:41:30 8
2018-05-14 20:43:30 2
如果你用結束時間-開始時間,獲得的具體分鐘是38:30秒,但是如果前后比較,使用的時間是32分鐘。
uj5u.com熱心網友回復:
2018-05-14 20:09:30 1
2018-05-14 20:28:00 12
這個12是怎么來的? 建議樓主能一次性把問題講清楚。否則不斷的問答,效率非常低。
uj5u.com熱心網友回復:
我理解的大致意思是記錄下一條減去上一條的時間求和。create table ldf(
id int AUTO_INCREMENT,
val datetime,
primary key(id)
);
insert into ldf(val)
values
('2018-05-14 20:05:00'),
('2018-05-14 20:07:30'),
('2018-05-14 20:08:30'),
('2018-05-14 20:09:30'),
('2018-05-14 20:13:00'),
('2018-05-14 20:16:00'),
('2018-05-14 20:28:00'),
('2018-05-14 20:30:30'),
('2018-05-14 20:33:30'),
('2018-05-14 20:41:30'),
('2018-05-14 20:43:30');
select a.val,b.val,unix_timestamp(a.val)-unix_timestamp(b.val) from
(select @n:=@n+1 as row,val from (select @n:=0) r,ldf) a,
(select @n1:=@n1+1 as row,val from (select @n1:=1) r,ldf) b
where a.row=b.row
select sum(unix_timestamp(a.val)-unix_timestamp(b.val)) as total_s from
(select @n:=@n+1 as row,val from (select @n:=0) r,ldf) a,
(select @n1:=@n1+1 as row,val from (select @n1:=1) r,ldf) b
where a.row=b.row
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/89537.html
標籤:MySQL
下一篇:Railfence、不僅僅是Morse、混合編碼、冪數加密、easy_RSA、Normal_RSA(新手詳細!!!)
