프로그래밍/MSSQL

[MSSQL] DATENAME, DATEPART (요일, 올해 몇번째 날, 주말을 제외한 평일 일수)

초보개발자꽁쥐 2017. 2. 9. 10:36
반응형

 

 

DATENAME, DATEPART 함수

 

 

해당 날짜의 요일 정보 (DATENAME)

 

SELECT DATENAME(DW, GETDATE())

 

결과 데이터

 

 

해당 날짜의 요일 정보 (DATEPART)

SELECT DATEPART(DW, '2017-02-05') AS '일요일(1)'
, DATEPART(DW, '2017-02-06') AS '월요일(2)'
, DATEPART(DW, '2017-02-07') AS '화요일(3)'
, DATEPART(DW, '2017-02-08') AS '수요일(4)'
, DATEPART(DW, '2017-02-09') AS '목요일(5)'
, DATEPART(DW, '2017-02-10') AS '금요일(6)'
, DATEPART(DW, '2017-02-11') AS '토요일(7)'

 

결과 데이터

 

DATEPART(DW, 날짜)는 해당 날짜의 요일값을 반환한다.

1일 경우 일요일, 2일 경우 월요일, ... 7일 경우 토요일

 

 

 

 

 

예제. 특정 두 날짜 사이의 주말을 제외한 평일 일 수

 

WITH TABLE_A(IDX, Sdt, Edt) AS ( 
	SELECT 1, '2017-01-01', '2017-02-09'
) 
SELECT DATEDIFF(d, Sdt, Edt)
	- (DATEDIFF(d, Sdt, Edt) + DATEPART(dw, Sdt)) /7 -- 토요일 횟수 
	- (DATEDIFF(d, Sdt, Edt) + DATEPART(dw, DATEADD(d, -1, Sdt))) /7 -- 일요일 횟수
	+ 1 AS '평일일수'
FROM TABLE_A WHERE IDX = 1

 

결과 데이터

 

 

 

 

 

[MSSQL] DATEDIFF, DATEADD (날짜 비교, 날짜 계산)
[MSSQL] date format 날짜 형식 (CONVERT DATETIME)
[MSSQL] CONVERT, CAST 형변환 함수
[MSSQL] 월 말일 날짜 가져오기
[MSSQL] 일/주/월/년도/요일 별로 카운트

 

 

 

 

반응형