我正在尝试使用日期名称合并周末日期。
表
所以我使用DATENAME并将日期转换为星期几。
然后我可以指望他们让它看起来像这样
但是我不确定如何将它们分组,所以看起来像
答案 0 :(得分:2)
有两种方法可以做到。您会注意到COUNT
版本必须返回NULL,因此COUNT()
函数将不对其进行计数。您也可以使用SUM()
。还有其他方法也可以做到。
DECLARE @x TABLE (mydate DATE);
INSERT INTO @x SELECT '11-25-2018'; --Sunday
INSERT INTO @x SELECT '11-24-2018'; --Saturday
INSERT INTO @x SELECT '11-25-2018'; --Sunday
INSERT INTO @x SELECT '11-23-2018'; --Friday
SELECT count(CASE WHEN DATEPART(dw, mydate) BETWEEN 2 and 6 THEN NULL ELSE 1 END ) AS CountOfWeekendDays
,sum(CASE WHEN DATEPART(dw, mydate) BETWEEN 2 and 6 THEN 1 ELSE 0 END) AS SumOfWeekDays
,sum(CASE WHEN DATEPART(dw, mydate) BETWEEN 2 and 6 THEN 0 ELSE 1 END) AS SumOfWeekendDays
FROM @x
答案 1 :(得分:1)
您将按日期名称(工作日)分组以获取必要的输出。
create table t(date_of_hire date);
insert into t values('2018-11-25');
insert into t values('2018-11-24');
insert into t values('2018-11-25');
select datename(weekday,date_of_hire) as day_of_week,count(*) as cnt
from t
group by datename(weekday,date_of_hire)
答案 2 :(得分:0)
获取周末的总天数
SELECT COUNT(*) as totalweekdays FROM tablename
WHERE
DATENAME(weekday, datecolumn) = 'Saturday'
OR
DATENAME(weekday, datecolumn) = 'Sunday'