sql 時間計算

2021-05-27 16:43:29 字數 2941 閱讀 7824

---兩個時間之差的合計

declare @i int

set @i = datediff(ms,getdate()-rand()*24,getdate())

select

convert(varchar(10), @i/86400000) + ' days ' +

convert(varchar(10), (@i%86400000)/3600000) + ' hours '+

convert(varchar(10), (@i%3600000)/60000) + ' mins '+

convert(varchar(10), (@i%60000)/1000) + ' sec ' +

convert(varchar(10), @i%1000) + ' ms ' as [dd:hh:mm:ss:ms]

-- find hours, minutes and seconds in between two datetime

declare @first datetime

declare @second datetime

set @first = '04/02/2008 05:23:22'

set @second = getdate()

select datediff(day,@first,@second)*24 as totalhours,

datediff(day,@first,@second)*24*60 as totalminutes,

datediff(day,@first,@second)*24*60*60 as totalseconds

select datediff ('d','1999-05-01','1999-03-07')

/*--geovin du 塗聚文 締友計算機資訊技術****

year yy, yyyy

quarter qq, q

month mm, m

dayofyear dy, y

day dd, d

week wk, ww

hour hh

minute mi, n

second ss, s

millisecond ms

*/---分鐘化小時

declare @strardate datetime,@enddate datetime,@hour int,@minute float

set @strardate='2011-08-15 18:00'

set @enddate='2011-08-15 22:45'

select @hour=datediff(hour,@strardate,@enddate)

select @minute=datediff(minute,@strardate,@enddate)%60

select @hour

select @hour+@minute/60

select @hour+round(@minute/60,1,1)---四捨五入

select round(150.75, 0);

goselect round(150.75, 0, 1);

goselect datediff(hh,@strardate,@enddate)

select datediff(mi,@strardate,@enddate)

declare @hms varchar(8)

set @hms = '10:30:00'

declare @hours int

declare @minutes decimal

set @hours = datepart(hour, @hms)

set @minutes = datepart(minute, @hms)

select @minutes/60+@hours

select round(@minutes/60,1)+@hours---四捨五入

---公司的加班計算,當大於半小時計加班半小時,不足半小時,不計加班

declare @strardate datetime,@enddate datetime,@hour int,@minute float,@minutes float

set @strardate='2011-08-15 18:00'

set @enddate='2011-08-15 22:45'

select @hour=datediff(hour,@strardate,@enddate)

select @minute=datediff(minute,@strardate,@enddate)%60

--select @hour+round(@minute/60,1,1)

set @minutes=@minute/60

if @minutes>0.5

set @minutes=0.5

if @minutes<0.5

set @minutes=0

select @minutes

select @hour

--select @minute

select @hour+@minutes

---select

sum(totalseconds) / 86400 as days,

(sum(totalseconds) % 86400) / 3600 as hours,

(sum(totalseconds) % 3600) / 60 as minutes,

sum(totalseconds) % 60 as seconds

from

( select eventid, datediff(second, startdate, enddate) as totalseconds

from events

) x

Oracle計算時間SQL

select extract day from to date 20130210000000 yyyymmddhh24miss sysdate day 9 to second 天,extract hour from to date 20130210000000 yyyymmddhh24miss sy...

SQL計算時間差

語法 datediff 開始時間,結束時間 釋義 datediff可以計算開始時間與結束時間的時間差,結果是天數 栗子 語法 timestampdiff 時間粒度,開始時間,結束時間 釋義 1 時間粒度引數 2 second 秒 計算開始時間與結束時間相差的秒數。4 minute 分 計算開始時間與...

建立SQL函式計算員工加班時間

你好,韓老師有個問題請教。我想通過秒計算加班時間。規則為 加班滿4小時才算加班,加班時間滿8小時為加班一天,加班時間不足4小時不算加班,加班時間大於4小時小於8小時為0.5個加班。我寫了乙個自定義函式計算但是計算出來的結果不對。麻煩韓老師指教 create function worktime sta...