2015-02-09 93 views
0

在我的过程中,我编写了一个查询来获得两个日期的小时差异。如何在SQL Server 24小时格式中花费时间差

在某些情况下,我没有得到正确的区别。

这是我的代码:

Declare @@Totalwork as Float 
set @Totalwork = (SELECT DATEDIFF(MINUTE, @fpunch, @SPunch)) 
set @Totalwork = (select ABS(@Totalwork)) 
set @totalWork = (select left((cast(@Totalwork as float)/60), 3)) 

当我在datediff功能使用两次,我没有得到正确的工作时间。其实我想要正确的区别。

我把价值放在下面。

SELECT DATEDIFF(hour, '10:15', '00:15') 

这里10:15是早上的时间,00:15是清晨的时间。

如何将时间转换为24小时格式?

回答

0

计算使用日期时间

Declare @Totalwork as datetime 
SET @Totalwork= @SPunch - @fpunch 

下面是计算它的一些不同的方式:

SELECT 
    datediff(hour, 0, @Totalwork) [hours], 
    datediff(minute, 0, @Totalwork) % 60 [remaining minutes], 
    datediff(minute, 0, @Totalwork) totalminutes 
    cast(@Totalwork as time) [timedifference], 
    @Totalwork actualdifference, 
    cast(@Totalwork as float)/24 decimalhours 
+0

感谢@ t-clausen.dk – Nuyan 2015-02-09 09:58:48

+0

那么如何在数位 – Nuyan 2015-02-09 10:00:08

+1

采取准确小时@Nuyan添加到我的回答。不要忘记接受答案。同样对于您的其他问题 – 2015-02-09 10:03:51

相关问题