如何在SQL Server 24小时格式中花费时差

时间:2015-02-09 09:47:10

标签: sql-server

在我的程序中,我写了一个查询,以获得两个日期的小时差异。

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

这是我的代码:

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小时格式?

1 个答案:

答案 0 :(得分:0)

使用datetime计算

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