MS-SQL SQL Server

MSSQL 날짜 년, 월, 일 가져오기(DATEPART, DATENAME)

깨노비 2020. 3. 10. 16:12
728x90
반응형

이번시간은 날짜의 특정부분(년, 월, 일, 시, 분, 초)만 가져오는 함수를 알아보자

 

이때 사용하는 함수는 DATEPART이다.

 

<문법>

SELECT DATEPART(날짜형식, 날짜) 

 

ex) SELECT DATEPART(YY, GETDATE()) 

 

DATEPART 함수에 2번째 인자로 DATETIME 타입의 데이터를 넣고

1번째 인자로 원하는 형식을 찾아서 넣으면 된다.

 

기본적인 형식은 아래와 같다.

SQL 결과
SELECT GETDATE() AS 현재 2020-03-10 16:03:23.670
SELECT DATEPART(YY, GETDATE()) AS 년 2020
SELECT DATEPART(MM, GETDATE()) AS 월 3
SELECT DATEPART(DD, GETDATE()) AS 일 10
SELECT DATEPART(DW, GETDATE()) AS 요일 3
SELECT DATEPART(HH, GETDATE()) AS 시 16
SELECT DATEPART(MI, GETDATE()) AS 분 3
SELECT DATEPART(SS, GETDATE()) AS 초 23
SELECT DATEPART(MS, GETDATE()) AS 밀리초 670

 

잠깐 그런데 요일은 숫자 3으로 나온다. 이것은 요일을 숫자로 표현한것인다.

일(1), 월(2), 화(3), 수(4), 목(5), 금(6), 토(7) 이렇게 대응된다.

일일이 요일을 바꿔주기 어렵기때문에 DATEPART 대신 DATENAME을 사용하면 요일을 바로 알 수 있다.

 

SQL 결과
SELECT DATENAME(DW, GETDATE()) AS 요일 Tuesday

설정에 따라서 화요일이라고 나오기도 하고 Tuesday라고 영어로 나오기도 한다.

 

그 외에 생각보다 유용한 날짜형식도 있으니 아래를 참고하자

SQL 결과
SELECT DATEPART(DY, GETDATE()) AS 연초부터의일수 70
SELECT DATEPART(QQ, GETDATE()) AS 사분기 1
SELECT DATEPART(WK, GETDATE()) AS 주 11

 

728x90
반응형