본문 바로가기

IT STUDY

mssql 날짜 양식 정리(YYYY-MM-DD / DATEPART / DATENAME / 한글영어변환하기)

반응형

MSSQL의 날짜 방식은 정말 다양한데

내가 개인적으 많이  쓰는 항목들을 정리해보았다.

YYYY-MM-DD

가장 많이 쓰는 날짜 형식 YYYY-MM-DD

중간에 varchar 로 변환 후, CONVERT 해서 이용을 많이한다.

--기본 날짜 표현 정리 YYYYMMDD
SELECT	USER_SEQNO, USER_REGDATE As 'REALDATE'
		, CONVERT(varchar,USER_REGDATE,112) AS 'convertDate' 
		, CONVERT(varchar(4),USER_REGDATE,112) As 'YYYY'
		, CONVERT(varchar(6),USER_REGDATE,112) As 'YYYY-MM'
		, CONVERT(varchar(9),USER_REGDATE,112) As 'YYYY-MM-DD'
FROM test.dbo.TABLE_MEMBERLIST
Order by USER_SEQNO ASC

 

YYYYMMDD

다음은 등록된 날짜 항목을 YYYYMMDD로 나타내는 경우

--기본 날짜 표현 정리 YYYYMMDD
SELECT	USER_SEQNO, USER_REGDATE As 'REALDATE'
		, CONVERT(varchar,USER_REGDATE,112) AS 'convertDate' 
		, CONVERT(varchar(4),USER_REGDATE,112) As 'YYYY'
		, CONVERT(varchar(6),USER_REGDATE,112) As 'YYYYMM'
		, CONVERT(varchar(9),USER_REGDATE,112) As 'YYYYMMDD'
FROM test.dbo.TABLE_MEMBERLIST
Order by USER_SEQNO ASC

DATEPART 활용하기

DATEPART 함수를 이용해서 YEAR, MONTH, DAY 등 등록된 datetime 형식의 데이터를 아래처럼 세세하게 나누어서 쓸 수 있다.

--기본 날짜 표현 정리 DATEPART
SELECT	USER_SEQNO, USER_REGDATE As 'REALDATE'
		,DATEPART(YEAR, CONVERT(varchar,USER_REGDATE)) As 'YEAR'
		,DATEPART(MONTH, CONVERT(varchar,USER_REGDATE)) As 'MONTH'
		,DATEPART(DAY, CONVERT(varchar,USER_REGDATE)) As 'DAY'
		,DATEPART(HOUR, CONVERT(varchar,USER_REGDATE)) As 'HOUR'
		,DATEPART(MI, CONVERT(varchar,USER_REGDATE)) As 'MI'
FROM test.dbo.TABLE_MEMBERLIST
Order by USER_SEQNO ASC​

DATENAME 활용하기 & SET LANGUAGE 활용하기

datetime 데이터의 요일을 확인 할 수 있다.

DATEPART로 하면 해당 날짜에 대한 숫자로 표현이 가능하고

DATENAME를 이용하면 해당 날짜의 요일을 각각 나라별로 확인이 가능하다.

상단에 SET LANGUAGE '등록된언어' 이런식으로 찾아서 진행해주면되는데

해당 등록된 LANGUAGE에 대한 정보는 구글링하다보면 찾아볼 수 있었다.

SET LANGUAGE 'KOREAN'
SELECT	USER_SEQNO, USER_REGDATE As 'REALDATE'
		,DATENAME(WEEKDAY, CONVERT(varchar,USER_REGDATE)) As 'WEEKDAY'
		,DATEPART(WEEKDAY, CONVERT(varchar,USER_REGDATE)) As 'WEEK_NUMBER'
FROM test.dbo.TABLE_MEMBERLIST
Order by USER_SEQNO ASC

1. 일요일

2. 월요일

3. 화요일

4. 수요일

5. 목요일

6. 금요일

7. 토요일

SET LANGUAGE 'ENGLISH'
SELECT	USER_SEQNO, USER_REGDATE As 'REALDATE'
		,DATENAME(WEEKDAY, CONVERT(varchar,USER_REGDATE)) As 'WEEK'
		,DATEPART(WEEKDAY, CONVERT(varchar,USER_REGDATE)) As 'WEEK'
FROM test.dbo.TABLE_MEMBERLIST
Order by USER_SEQNO ASC

 

반응형