J'ai une table de base de données dans laquelle il y a une colonne OccurDate
de type DateTime
.Erreur couse DataTime-varchar (10)
données est comme ça ...
06-03-2013 06:47:49
06-03-2013 16:47:49
Je dois trouver InTime, OutTime, WorkDuration.
J'utilise requête comme ceci
Min(convert(varchar(10),OccurDateTime,108)) AS InTime,
Max(convert(varchar(10),OccurDateTime,108)) AS OutTime,
mais je suis face à problème lors du calcul workDuration
parce que le
workDuration = 16:30:00 - InTime //16:30:00 means 4:30 pm
et est maintenant INTIME varchar(10)
donc il ne peut pas soustraire de Datetime
..... ..
La requête que j'utilise ..
SELECT UserID AS EmpCode,FirstName,LastName,Department,convert(varchar(10),OccurDateTime,103) AS Date,Min(convert(varchar(10),OccurDateTime,108)) AS InTime,
Max(convert(DateTime,OccurDateTime,108)) AS OutTime,
convert(varchar(10),(Max(convert(DateTime,OccurDateTime,108))- Min(convert(DateTime,OccurDateTime,108))),108) as Work,
FROM TTransactionLog1
WHERE convert(varchar(10),OccurDateTime,103) = '14/03/2013'
GROUP BY UserID, FirstName, convert(varchar(10),OccurDateTime,103),LastName,Department
Alors les gars avez une idée ......
pourquoi avez-vous besoin de le convertir en varchar? – Sergio
Donnez la requête complète que vous utilisez. Pour le moment, je ne vois pas le sens de convertir vos temps à 'VARCHAR' –
oui il n'y a pas de sens.peux-tu me dire comment stocker seulement le temps dans Intime – vikky