Sql server 2005 在SQLServer2005中如何分割时间和计算时差?

Sql server 2005 在SQLServer2005中如何分割时间和计算时差?,sql-server-2005,Sql Server 2005,我想使用SQLServer2005拆分时间并计算时差 我的默认输出如下所示: 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

我想使用SQLServer2005拆分时间并计算时差

我的默认输出如下所示:

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
我希望我的新输出如下:

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
你可以用

substring(AttDateFirst,charindex(' ',AttDateFirst)+1 ,
                       len(AttDateFirst)) as [FirstTime]
选择DATEDIFF(日期,2007-11-302007-11-20)作为NumberOfDays, DATEDIFF(hour,2007-11-302007-11-20)作为NumberOfHours, DATEDIFF(分钟,2007-11-302007-11-20)作为从 测试表

你可以使用

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

您可以使用以下查询:

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

第一个和最后一个日期总是在同一天?是的,在同一天。我正在从打孔机获取记录,以便用户可以在同一天的任何时间打孔,但我们希望获得第一次和最后一次打孔记录,并找出时间差