高分求一个SQL的算法

来源:百度知道 编辑:UC知道 时间:2024/05/23 09:43:23
是关于考勤的打卡记录的问题,如下:比如打卡记录是18:10--22:40(晚上加班)我要实现结果是:18:10--20:44(即只显示2个小时的加班时间分钟数,)如果打卡记录是18:31--22:40则要实现为:18:31--21:04(因为加班时间按半小时的整数倍算,18:31即为19:00上班),哪位高人可以给我SQL的算法,,用sql语句实现,,先谢谢了!!!
就是根据前面的上班时间(如18:10),,推断出2小时候的下班时间(20:30),若上班时间(如18:40),,则是(21:01)

必须得有一个日期字段吧,否则没办法知道这个时间是属于哪天的。
给出你的表结构。
如果你的表结构类似这样:
create table tt (f1 datetime)
那么:
select case when datepart(n,dateadd(hh,2,f1))>=30 then convert(varchar(14),dateadd(hh,3,f1),120)+'01' else convert(varchar(14),dateadd(hh,2,f1),120)+'30' end from tt

方法,SQLSERVER语法不记得了.
小时:分钟

小时 = 小时

if 分钟<30 then
分钟=30
else
分钟=0
小时 = 小时 +1
end if

写成方法.

似乎问题表达得不够清楚。

看不太懂
若要算两个时间的时间差多少分钟
datediff(mi,beginTime,endTime)

select datediff (mi,'2000-1-1','2000-1-2')