測試數(shù)據(jù)圖片在下面????????。該解決方案使用了開窗函數(shù)lead,mysql8.0支持,我這是在hive上測試的。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比深州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式深州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務覆蓋深州地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
大致思路為,只統(tǒng)計running-stopped的運行時間,stoppe-running的過濾掉,也不需要計算。
select?
id,sum(next_diff_time)/60 running_time
from (
select id,lead(unix_timestamp(datetime),1,-1) over(partition by id order by datetime)-unix_timestamp(datetime) next_diff_time,status
from test??
) tt
where status!='stopped'
group by id;
首先說明你的DATEDIFF(dd,0,getdate()),這個表示獲取當前日期與0之間的天數(shù)差,dd表示是用來表示天.然后DATEADD(dd, DATEDIFF(dd,0,getdate()), 0),這個是用來表示0加上你剛才獲取的天數(shù)差后的日期~
具體的說明如下,你可以自己了解~
------------------------------------------------------------------
DateAdd函數(shù) 返回
返回包含一個日期的 Variant (Date),這一日期還加上了一段時間間隔。
語法
DateAdd(interval, number, date)
DateAdd 函數(shù)語法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達式,是所要加上去的時間間隔。
number 必要。數(shù)值表達式,是要加上的時間間隔的數(shù)目。其數(shù)值可以為正數(shù)(得到未來的日期),也可以為負數(shù)(得到過去的日期)。
date 必要。Variant (Date) 或表示日期的文字,這一日期還加上了時間間隔。
設(shè)置
interval 參數(shù)具有以下設(shè)定值:
設(shè)置 描述
yyyy 年
q 季
m 月
y 一年的日數(shù)
d 日
w 一周的日數(shù)
ww 周
h 時
n 分鐘
s 秒
說明
可以使用 DateAdd 函數(shù)對日期加上或減去指定的時間間隔。例如,可以用 DateAdd 來計算距今天為三十天的日期;或者計算距現(xiàn)在為 45 分鐘的時間。
為了對 date 加上“日”,可以使用“一年的日數(shù)” (“y”),“日” (”d”) 或“一周的日數(shù)” (”w”)。
DateAdd 函數(shù)將不返回有效日期。在以下實例中將 1 月31 日加上一個月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,則由于 1996 年是閏年,返回值是 1996 年 2 月 29 日。
如果計算的日期超前 100 年(減去的年度超過 date 中的年份),就會導致錯誤發(fā)生。
如果 number 不是一個 Long 值,則在計算時取最接近的整數(shù)值來計算。
注意 DateAdd 返回值的格式由 Control Panel設(shè)置決定,而不是由傳遞到date 參數(shù)的格式?jīng)Q定。
=========================================
DateDiff: SQL server函數(shù)
返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數(shù)目。
語法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函數(shù)語法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達式,表示用來計算date1 和 date2 的時間差的時間間隔
Date1□date2 必要;Variant (Date)。計算中要用到的兩個日期。
Firstdayofweek 可選。指定一個星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含 1 月 1 日的星期為第一周。
設(shè)置
interval 參數(shù)的設(shè)定值如下:
設(shè)置 描述
yyyy 年
q 季
m 月
y 一年的日數(shù)
d 日
w 一周的日數(shù)
ww 周
h 時
n 分鐘
s 秒
----------------------------------------------------------
以上部分來源于百度
declare?@num1?int,@num2?int;?--?如果是int型直接+就可以
set?@num1=1;
set?@num2=2;
select?(@num1+@num2)?num;
declare?@num1?varchar(2),@num2?varchar(2);?--非int類型需要convert為int型后+
set?@num1='1';
set?@num2='2';
declare?@tempnum1?int,@tempnum2?int;
set?@tempnum1?=?CONVERT(int,@num1);
set?@tempnum2?=?CONVERT(int,@num2);
select?(@tempnum1+@tempnum2)?num;
select sum(求和欄位),sum(求和欄位)/count(*) --總和,平均值
from 表名
名稱欄目:sqlserver計算,sqlserver計算字符串長度的函數(shù)
轉(zhuǎn)載源于:http://chinadenli.net/article12/dsgosdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務器托管、建站公司、網(wǎng)站制作、微信公眾號、響應式網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)