sql 时间计算

来源:互联网 发布:直播hdp软件下载 编辑:程序博客网 时间:2024/05/22 02:25
---兩個時間之差的合計DECLARE @I INTSET @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 datetimeDECLARE @First datetimeDECLARE @Second datetimeSET @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 floatset @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)%60select @hourselect @hour+@minute/60select @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 intdeclare @minutes decimalset @hours = datepart(hour, @hms)set @minutes = datepart(minute, @hms)select @minutes/60+@hoursselect round(@minutes/60,1)+@hours---四舍五入---公司的加班計算,當大於半小時計加班半小時,不足半小時,不計加班DECLARE @strardate datetime,@enddate datetime,@hour int,@minute float,@minutes floatset @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/60if @minutes>0.5   set @minutes=0.5if @minutes<0.5   set @minutes=0select @minutesselect @hour--select @minuteselect @hour+@minutes---select   sum(TotalSeconds) / 86400 as Days,  (sum(TotalSeconds) % 86400) / 3600 as Hours,   (sum(TotalSeconds) % 3600) / 60 as Minutes,   sum(TotalSeconds) % 60 as Secondsfrom(    select EventID, DateDiff(second, StartDate, EndDate) as TotalSeconds     from Events) x