2009-10-02 12 views
0

Utilisation de SQL Server 2000Problème de perte de valeur de temps?

requête

Select id, CONVERT(char(8), CASE WHEN DateAdd(Day, - DateDiff(Day, 0, OutTime), OutTime) > Normal_Outtime THEN Cast(Normal_Outtime AS datetime) ELSE DateAdd(Day, - DateDiff(Day, 0, OutTime), OutTime) END - CASE WHEN DateAdd(Day, - DateDiff(Day, 0, InTime), InTime) < Normal_Intime THEN Cast(Normal_Intime AS datetime) ELSE DateAdd(Day, - DateDiff(Day, 0, InTime), InTime) END - cast(totalLunchtime AS datetime), 8) ELSE '00:00:00' END AS WorkedTime 
from table 

de la requête ci-dessus, en faisant outtime - INTIME - totallunchtime

types de données de colonne sont varchar

Exemple

Id |Intime |Outtime |totallunchtime 

001 |09:00:00 |21:00:00 |01:00:00 
002 |07:00:00 |07:30:00 |01:00:00 
003 |00:00:00 |00:00:00 |01:00:00 

WorkedTime moyens (outti moi - INTIME - totalLunchtime)

Obtention d'une sortie comme ceci

id |workedtime 

001 |11:00:00 
002 |23:30:00 
003 |23:00:00 

Seul le problème de totallunchtime en moins 0:00:00 qu'il donne 23:00:00 et aussi pour personid 002, il donne 23:30 : 00 il devrait donner seulement 00:30:00

sortie prévue

id |workedtime 

001 |11:00:00 
002 |00:23:00 
003 |00:00:00 

ainsi de suite ...,

Besoin d'aide pour la recherche

+0

Duplicata de http://stackoverflow.com/questions/1509508/how-to-make-total – RedFilter

+0

Orbman. C'est pour Minus le problème de timevalue. Celui-là est différent relisez la question – Gopal

+0

@Gopal, qu'en est-il de toutes les autres questions que vous avez posées au cours des derniers jours? Il y a eu beaucoup de questions pour que vous puissiez clarifier ce que vous demandez, avez-vous déjà clarifié ces questions, ou même accepté l'une de ces réponses? –

Répondre

1

Est-ce que quelque chose comme ceci ferait l'affaire?

declare @a datetime 
declare @b datetime 
declare @c datetime 

set @a = '09:00:00' 
set @b = '17:00:00' 
set @c = '01:00:00' 

select @b - @a - case when datediff(n, @a, @b) < 60 then '00:00:00' else @c end 

Si vous avez besoin de plus, vous devez préciser dans quelles conditions la colonne totallunchtime doit être prise en compte.

+0

@Chris J a dit _Si vous avez besoin de plus que cela, alors vous devez préciser ..., ha! voir mon commentaire sur la question ... –

+0

@Chris. Merci beaucoup – Gopal

Questions connexes