본문 바로가기

프로그래밍/MSSQL

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

반응형

 

 

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] 일/주/월/년도/요일 별로 카운트

 

 

 

 

반응형