본문 바로가기
개발이야기/데이터베이스

mssql convert 함수로 날짜를 원하는대로 출력해보자

by 시다파파 2017. 1. 31.
반응형

mssql의 convert 함수에 대해 알아보겠습니다.

 

convert 함수는 데이터 형식을 다른 데이터 형식으로 변환하는데 자주 사용됩니다.

 

저같은 경우는 보통 날짜형 데이터를 문자형 데이터로 변환하는데 자주 사용합니다.

먼저 가장 기본이 되는 문법을 살펴보겠습니다.

convert(데이터타입, 변경할컬럼, 반환형태) 로 세개의 인자값을 가집니다.

 

여기서 세번째 인자값은 선택사항이고 첫번째와 두번째 인자값은 필수입니다.

 

이제 간단한 예문을 살펴보겠습니다.

예) Select convert(varchar(20), int_num) as int_to_varchar from tmp_convert

 

tmp_convert 테이블에서 컬럼 int_num을 varchar(20)에 변경한 후 int_to_varchar에 넣어라

이런 구문인데요..구문상 내용이 거의 직관적이기 때문에 한번만 사용해보시면 쉽게

이해 하실 수 있을 겁니다.

 

저 같은경우는 위와 같은 형태는 거의 사용하지 않구요 date 타입의  값을 문자열로 저장해서

값을 가져올때 유용하게 사용합니다.

 

그럼 예문을 살펴보겠습니다.

예) Select convert(varchar(20), now_date, 120) as now_date_120 from tmp_convert_date

 

첫번째 구문과 거의 비슷하지만 세번째 인자값이 추가되었습니다.

mssql에서는 출력되는 날짜 타입이 대략 열 몇가지가 있는데..저같은 경우 2-3가지만 사용하고

거의 1가지만 사용할때도 있습니다.

 

위 예문은 출력되는 날짜 타입을 변경후 varchar 타입의 문자열로 바꾸고 그 값을 now_date_120에

담는 예제 입니다.

 

mssql에서 지원하는 날짜 타입은 많이 있지만 120 하나 만으로도 특수한 경우를 제외하고

거의 대부분을 처리할 수 있을겁니다.

 

추가로 날짜 타입에 대해 몇개만 살펴보고 마치겠습니다.

1. convert(varchar(20), now_date, 23) ============> yyyy-mm-dd

   그냥 열자리 날짜로 출력됩니다.

 

2. convert(varchar(20), now_date, 120) ============> yyyy-mm-dd hh:mi:ss

   열자리 날짜에 추가로 시 분 초까지 출력됩니다. 가장 자주 사용합니다.

 

3. convert(varchar(20), now_date, 126) ============> yyyy-mm-dd Thh:mi:ss.mmmm

   자주는 아니지만 저같은 경우 결제 모듈을 붙일때 타임스탬프 형식의 날짜를 구할때 사용합니다.

 

위 3가지 정도만 익혀 두시면 사용하시는데 크게 지장은 없을것 같습니다.

 

 

 

반응형