使用SQL Sever的2005减少时间问题?
从下面的查询我得到的总的工作时间是指Outtime - 银泰百货,假设当我减去第二天时间是指显示错误的时间
查询
Select ID, Normal_Intime, Normal_Outtime, Date, Intime, outtime, CONVERT(char(8), CASE WHEN InTime < Outtime THEN CASE WHEN OutTime > Normal_Outtime THEN CAST(Normal_Outtime AS datetime) ELSE CAST(Outtime AS datetime) END - CASE WHEN InTime < Normal_Intime THEN CAST(Normal_Intime AS datetime) ELSE CAST(Intime AS datetime) END ELSE CASE WHEN InTime < Normal_Intime THEN CAST(Normal_Intime AS datetime) ELSE CAST(Intime AS datetime) END - CASE WHEN OutTime > Normal_Outtime THEN CAST(Normal_Outtime AS datetime) ELSE CAST(Outtime AS datetime) END END, 8) AS workedtime from table1
输出
ID Normal_Intime, Normal_Outtime, Date Intime, Outtime, Worktime
01 10:00:00 19:00:00 01/09/2009 08:20:56 15:40:15 05:40:15
01 18:00:00 05:00:00 02/09/2009 15:00:59 08:20:16 13:00:00
第一个是正确的, 第二次工作时间应该给上午11点00分因为银泰时间18:00:00和外勤时间是05:00:00(次日上午05:00:00),现在工作时间为18:00:00 - 05:00:00,因为13:00:00 。它应该只给11:00:00
如何减去第二天的时间。
需要查询帮助
仍然将日期存储在varchar字段中? – MartW 2009-10-14 10:31:26