2015-05-25 7 views
0

Как мы можем сделать процедуру магазина между временем?Рассчитать общее количество часов от 2 временных марок?

как,

Total Hr=((outtime - intime) - (breakin time - breakout time)) 
+0

ли ваш с помощью C#, VB или SQL? Если вы используете SQL, какой движок (SQL Server, Oracle, mySql, Postgresql) и какую версию? – CrApHeR

ответ

0
create procedure sp_time_outtime 

@id bigint 

as 

begin 

declare 

@totalhour as nvarchar(50), 

@tth as bigint, 

@ttm as bigint, 

@inhour as bigint, 

@outhour as bigint, 

@breakinhour as bigint select @tth = datediff(mi, intime, (case when breakouttime is null then isnull(breakintime,GETDATE()) else GETDATE() end)) from time where [email protected] and CONVERT(date,GETDATE()) = CONVERT(date,[date]) 

select @ttm = datediff(mi, isnull(breakintime,'1/1/1990'),ISNULL(breakouttime,isnull (breakintime,'1/1/1990'))) from time where [email protected] and CONVERT(date,GETDATE()) = CONVERT(date,[date]) 


select @totalhour = (@tth [email protected]) 

SET @totalhour = CASE WHEN (@tth [email protected]) >= 60 THEN (SELECT CAST(((@tth [email protected])/60) AS VARCHAR(2)) + ' :H :' + 
       CASE WHEN ((@tth [email protected]) % 60) > 0 THEN 
        CAST(((@tth [email protected]) % 60) AS VARCHAR(2)) + ' M' 
       ELSE 
        '' 
       END) ELSE 
     CAST(((@tth [email protected]) % 60) AS VARCHAR(2)) + 'M' 
    END 
if ((select outtime from time where [email protected] and convert(date,GETDATE())=CONVERT(date,[date])) IS NULL) 
begin 
update time set outtime=GETDATE(),[email protected] where 
[email protected] and CONVERT(date,GETDATE()) = CONVERT(date,[date]) 
end END 
+0

Пожалуйста, добавьте некоторое объяснение в свой ответ. В другом случае это похоже на копию + пасту из другой. –

Смежные вопросы