如何在sql server 2005中分割时间并计算时差?

时间:2011-10-11 06:07:34

标签: sql-server-2005

我想使用sql server 2005分割时间并计算时差

我的默认输出是这样的:

EnrollNo     AttDateFirst                          AttDateLast
111      2011-12-09 08:46:00.000          2011-12-09 08:46:00.000
112      2011-12-09 08:40:00.000          2011-12-09 17:30:00.000
302      2011-12-09 09:00:00.000          2011-12-09 18:30:00.000
303      2011-12-09 10:00:00.000          2011-12-09 18:35:00.000

我希望我的新输出像这样:

Enroll No     .....      FirtTime       LastTime      Time Diff
111           .....      8:46:00          8:45:00     00:00:00
112           .....      8:30:00         17:30:00      9:00:00
302           .....      9:00:00         18:30:00      9:30:00 
303           .....     10:00:00         18:35:00      8:35:00

2 个答案:

答案 0 :(得分:1)

你可以使用

  

选择DATEDIFF(日,2007-11-30,2007-11-20)AS NumberOfDays,   DATEDIFF(小时,2007-11-30,2007-11-20)AS NumberOfHours,   DATEDIFF(分钟,2007-11-30,2007-11-20)AS NumberOfMinutes来自   TEST_TABLE

分裂你可以使用

substring(AttDateFirst,charindex(' ',AttDateFirst)+1 ,
                       len(AttDateFirst)) as [FirstTime]

答案 1 :(得分:1)

您可以使用此查询:

select EnrollNo, convert(varchar, AttDateFirst, 8) as FirstTime,
                 convert(varchar, AttDateLast, 8) as LastTime,
                 convert(varchar, AttDateLast - AttDateFirst, 8) as [Time Diff]
from YourTable

返回以下结果:

EnrollNo    FirstTime                      LastTime                       Time Diff
----------- ------------------------------ ------------------------------ ------------------------------
111         08:46:00                       08:46:00                       00:00:00
112         08:30:00                       17:30:00                       09:00:00
302         09:00:00                       18:30:00                       09:30:00
303         10:00:00                       18:35:00                       08:35:00