如何在SQL中找到两个时间值之间的差异

时间:2019-01-29 00:02:32

标签: sql sql-server

我目前正在编写一个C#应用程序,用户可以在其中记录每天的登录和注销时间。
时间存储在数据类型为time(0)的表上,因此时间显示为09:00:00。
存储数据的列是 登录,退出

我要做的是显示用户当天工作了多长时间,例如Sign_In 09:00:00 Sign_Out 17:00:00。例如,这里相差8小时。我已经尝试研究美食,但无法弄清楚。我为此尝试了以下方法。

如何在SQL语句中编写Sign_Out减去Sing_In?

3 个答案:

答案 0 :(得分:1)

您可以使用datediff()

select datediff(minute, sign_in, sign_out) as minutes_inside

如果您希望将其作为小时,我建议使用小数小时:

select datediff(minute, sign_in, sign_out) / 60.0 as hours_inside

答案 1 :(得分:0)

在这里您可以尝试以下查询。

SELECT CONVERT(VARCHAR(8), DATEADD(SECOND, DATEDIFF(SECOND,@sign_in, @sign_out),0), 108) as ElapsedTime

您将获得elapsedtime作为hour:minute:second

答案 2 :(得分:0)

您可以尝试

SELECT DATEDIFF(HH, '09:00:00', '17:00:00') AS TotalDiff;

要了解有关Datediff的更多信息,请遵循herethis