SSMS 2017
我正在尝试计算文件上传和文件完成日期之间的周转时间,不包括下班时间或周末的时间
我正在尝试使用case语句来做到这一点。
case
when datepart(dw,d.sduploadeddate) in (2, 3, 4, 5) and datepart(hh,d.sduploadeddate) > 16 then d.sduploadeddate+1
when datepart(dw,d.sduploadeddate) in (6) and datepart(hh,d.sduploadeddate) > 17 then d.sduploadeddate+3
when datepart(dw,d.sduploadeddate) in (7) then d.sduploadeddate+2
when datepart(dw,d.sduploadeddate) in (8) then d.sduploadeddate+1
else d.sduploadeddate
end [Uploadeddatetime2]
上面的代码可以正常工作,但是显然不能解决问题-只是减少了周转时间。我只是在尝试一种方法来获得更准确的周转时间。
周一至周五的工作时间为8-> 1700
理想情况下,我可以说该日期时间是否超过1700,然后date + 1和小时数= 800(因此,星期四为1850,将其更改为星期五为800)。同样,在时间800之前的星期五(或任何工作日)调整为当天的800。
对于星期五和周末,这是相同的,但是日期取决于日期,分别为+1、2或3,并在星期一将其设置为800