Sql server 减去时间问题?
使用sqlsever2005 从下面的查询中,我得到的总工作时间意味着休息时间-时间,假设我减去第二天的时间意味着显示错误的时间 质疑Sql server 减去时间问题?,sql-server,Sql Server,使用sqlsever2005 从下面的查询中,我得到的总工作时间意味着休息时间-时间,假设我减去第二天的时间意味着显示错误的时间 质疑 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
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
第一个是对的,,
第二个工作时间应为11:00:00,因为时间为18:00:00,休息时间为第二天05:00:00,现在工作时间为18:00:00-05:00:00,工作时间为13:00:00。应该只有11:00:00
如何减去第二天的时间
需要查询帮助不要使用减法,而是使用datediff函数。如果超时时间小于及时时间,则在减法之前向其添加24我认为这将比使用datediff函数更快如何添加24。你能告诉medateparthour,[Normal_outtime]+24仍在varchar字段中存储日期吗?
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