我目前正在编写一个C#应用程序,用户可以在其中记录每天的登录和注销时间。
时间存储在数据类型为time(0)的表上,因此时间显示为09:00:00。
存储数据的列是
登录,退出
我要做的是显示用户当天工作了多长时间,例如Sign_In 09:00:00 Sign_Out 17:00:00。例如,这里相差8小时。我已经尝试研究美食,但无法弄清楚。我为此尝试了以下方法。
如何在SQL语句中编写Sign_Out减去Sing_In?
答案 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)