计算周末和晚上的日期时间

时间:2019-06-19 20:28:42

标签: sql sql-server

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

0 个答案:

没有答案