如何用条件分割总时间

时间:2011-01-31 10:36:59

标签: sql sql-server sql-server-2005

使用SQL Server。

表1

ID TotalTime

001 12:00:00
002 11:00:00
003 09:00:00
004 08:00:00
005 14:00:00
....
....,

TotalTime Datatype is nvarchar

我需要将总时间列拆分为3列,如下面的条件

First 8 Hours should display in  First column
After 8 Hours the next 2 Hours should display in Second column
After 10 Hours the remaining hours should display in third column

预期产出

ID TotalTime Column1 Column2 Column3

001 12:00:00 08:00:00 02:00:00 02:00:00
002 11:00:00 08:00:00 02:00:00 01:00:00
003 09:00:00 08:00:00 01:00:00 
004 08:00:00 08:00:00      
005 14:00:00 08:00:00 02:00:00 04:00:00
....
....,

如何查询上述条件。

需要查询帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用case分割时间:

select  ID
,       case when totaltime > 8 then 8 
             else totaltime end
,       case when totaltime > 10 then 2
             when totaltime > 8 then totaltime - 8
             else 0 end
,       case when totaltime > 10 then totaltime - 10
             else 0 end
from    YourTable