MSSQL 날짜변환함수에 대하여 알아보겠습니다. 먼저 CAST, CONVERT 구문입니다.
1 2 3 4 5 | -- CAST Syntax: CAST ( expression AS data_type [ ( length ) ] ) -- CONVERT Syntax: CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) |
CAST문 CONVERT문 모두 형변환시에 사용하며 보통 CAST문의 경우는 산술연산이 필요할경우에 문자열을 숫자,날짜형으로 바꾸거나 숫자형식중 float,int의 연산등에 많이 사용하며, CONVERT문의 경우는 날짜값을 국가별로 포멧이나 사용하는 방식이 다르므로 사용자가 원하는 형태로 변환할떄 많이 사용됩니다.
1. CAST문
CAST문의 경우는 아래와 같이 산술연산시에 사용되면 문자열->날짜형식으로 바꾼후 DATEADD값을 사용해서 연산하는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | DECLARE @a int DECLARE @b varchar(10) DECLARE @result int DECLARE @result_dt datetime DECLARE @str_dt varchar(30) set @a = 10; set @b = 10; SET @result = @a + CAST(@b AS INT) --날짜연산 SET @str_dt= '2019-08-23 11:22' SET @result_dt = (DATEADD("DAY",@a,CAST(@str_dt as datetime))) PRINT @result PRINT @result_dt |
실행결과입니다.
2. CONVERT문
CONVERT문의 경우는 날짜형식을 사용자가 원하는 형태로 출력할때 많이 사용되며 현재시간을 자주사용하는 포멧의 형태로 변환해본 예제입니다. 마지막 Style값을 변경하여 다양한 날짜포멧의 결과를 얻을수 있습니다.
1 2 3 4 5 | SELECT GETDATE() '기본' ,CONVERT (NVARCHAR,GETDATE(),120) '1' ,CONVERT (NVARCHAR,GETDATE(),23) '2' ,CONVERT (NVARCHAR(10),GETDATE(),120) '3' ,CONVERT (NVARCHAR(16),GETDATE(),120) '4' |
3. CONVERT STYLE에 따른 결과값
개인적으로는 120을 가장많이 이용합니다. 자주사용하는것 이외에는 기억이 안나는경우가 많이 일일이 찾아볼수 없어서 type은 120으로 지정한후 사이즈만 10,16이런식으로 변경해서 사용합니다.
보다 자세한 내용은 MSDN문서를 참고바라며 아래링크에서 참고하시면 됩니다.
출처 및 참고
MSDN 링크 : docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15
'프로그래밍 > DB' 카테고리의 다른 글
[DB] MSSQL 데드락(교착상태) 해결방법 (2) | 2020.10.18 |
---|---|
[DB] MSSQL 년별,분기별,월별,주별,일별 통계쿼리(DATEPART사용) (2) | 2020.10.16 |
[DB] MSSQL 데이터가져오기,내보내기(엑셀가져오기,엑셀내보내기) (0) | 2020.10.12 |
[DB] MSSQL 데이터베이스 다이어그램을 통하여 ERD작성 (0) | 2020.10.11 |
[DB] MSSQL PIVOT,UNPIVOT(피벗) 사용방법 (0) | 2020.10.11 |