programing

SQL Server 쿼리에서 주말을 제외하려면 어떻게합니까?

nasanasas 2020. 12. 14. 08:25
반응형

SQL Server 쿼리에서 주말을 제외하려면 어떻게합니까?


DateTime토요일 또는 일요일 열 에서 값을 제외하려면 어떻게합니까 ?

예를 들어 다음과 같은 데이터가 있습니다.

date_created
'2009-11-26 09:00:00'  -- Thursday
'2009-11-27 09:00:00'  -- Friday
'2009-11-28 09:00:00'  -- Saturday
'2009-11-29 09:00:00'  -- Sunday
'2009-11-30 09:00:00'  -- Monday

이것이 내가 찾고있는 결과입니다.

date_created
'2009-11-26 09:00:00'  -- Thursday
'2009-11-27 09:00:00'  -- Friday
'2009-11-30 09:00:00'  -- Monday

감사!


요일 계산을 처리 할 때 현재 DATEFIRST설정 을 고려하는 것이 중요합니다 . 이 쿼리는 @@DATEFIRST주의 첫날에 대해 가능한 모든 설정을 고려 하여 주말을 항상 올바르게 제외 합니다.

SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) NOT IN (0, 1)

SELECT date_created
FROM your_table
WHERE DATENAME(dw, date_created) NOT IN ('Saturday', 'Sunday')

SQL Server를 사용한다고 가정하고 dw와 함께 DATEPART를 사용합니다.

SELECT date_created
FROM your_table
WHERE DATEPART(dw, date_created) NOT IN (1, 7);

편집 : DATEPART (dw)에 의해 반환 된 실제 숫자 값이 SET DATEFIRST를 사용하여 설정된 값에 의해 결정된다는 점을 지적해야합니다.
http://msdn.microsoft.com/en-us/library/ms181598.aspx


DATENAME()기능을 시도하십시오 .

select [date_created]
from table
where DATENAME(WEEKDAY, [date_created]) <> 'Saturday'
  and DATENAME(WEEKDAY, [date_created]) <> 'Sunday'

대답은 서버의 주간 시작 설정에 따라 다르므로

SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (7,1)

일요일이 서버의 첫 번째 요일 인 경우

또는

SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (6,7)

월요일이 서버의 첫 번째 요일 인 경우

질문이 있으시면 댓글을 남겨주세요 :-)


기본값으로 테이블 열의 휴가 근무일 계산-업데이트 됨

SQL을 사용하는 경우 여기에 도움이 될 수있는 쿼리가 있습니다. http : //gallery.technet.microsoft.com/Calculate ...


이 코드 시도

select (DATEDIFF(DD,'2014-08-01','2014-08-14')+1)- (DATEDIFF(WK,'2014-08-01','2014-08-14')* 2)

참고 URL : https://stackoverflow.com/questions/1803987/how-do-i-exclude-weekend-days-in-a-sql-server-query

반응형