我正在尝试编写一个查询,它将为我提供在两个特定时间内两个特定日期之间完成的程序数,但仅限于工作日。我有日期和时间的脚本工作,但我不知道如何得到它,所以它只包括工作日。我只想要星期一到星期五的结果,不包括星期六和星期天的结果。
我的问题:
SELECT MONTH(r.LastModifiedDate) AS MONTHpreCOVID, PlacerFld2 AS MODALITY, COUNT(*) AS CountOfReportsDayTimePreCOVID
FROM [order] o
LEFT JOIN report r
ON o.reportID = r.reportID
WHERE r.LastModifiedDate >= '2019-07-01' AND r.lastmodifieddate <= '2020-06-01'
AND CAST(r.lastmodifieddate as TIME) >= '08:00:00' AND CAST(r.lastmodifieddate as TIME) <='16:59:59'
AND reportstatusID = '7'
AND r.creatorAcctID = '139'
GROUP BY MONTH(r.LastModifiedDate), PlacerFld2
ORDER BY MONTH(r.LastModifiedDate) ASC
我尝试在('0','1','2','3','4')中添加类似weekday(r.lastmodifieddate)的内容,但这不起作用。
2条答案
按热度按时间aelbi1ox1#
使用此选项:
0 -> Sunday
1 -> Monday
2 -> Tuesday
3 -> Wednesday
4 -> Thursday
5 -> Friday
6 -> Saturday
SELECT (((DATEPART(DW, @DATE_VAR) - 1 ) + @@DATEFIRST ) % 7)
pftdvrlh2#
您可以将一周中的某一天确定为datepart(weekday,dt)。
让你看看
所以对你来说,应该是