반응형
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] 일/주/월/년도/요일 별로 카운트
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] 조건절 LIKE 검색 조건 (ESCAPE 특수문자 와일드 카드 (예약어) 검색) (0) | 2017.02.13 |
---|---|
[MSSQL] PIVOT, UNPIVOT (행렬 변환) (6) | 2017.02.10 |
[MSSQL] PARTITION BY 테이블 분할 함수 (0) | 2017.02.09 |
[MSSQL] COMPUTE (별도의 결과 집합으로 출력) (0) | 2016.07.11 |
[MSSQL] ROLLUP (소계, 합계) (0) | 2016.07.11 |