--MY_TABLE에서 이름(NM_KOR)칼럼의 이순신을 이성계로 바꿔서 출력--SELECT STUFF(NM_KOR,2,2,'성계')AS 사원명 FROM MY_TABLE
Convert
개인적으로 가장 많이 사용하는 데이터 변환 함수라고 생각합니다.날짜 변환하는데도 유용하게 사용 가능합니다. 참고로부동 소수점 또는 숫자에서 정수로 변환할 때 CONVERT() 함수는 결과를 자르고 다른 변환일 경우에는 반올림합니다.
사용법
--문법--CONVERT(data_type[(length)], expression[style])
--예시--SELECTCONVERT(NVARCHAR(10),칼럼) AS 칼럼명 FROM MY_TABLE --VARCHAR로 변환SELECTCONVERT(INT,칼럼) AS 칼럼명 FROM MY_TABLE --INT로 변환SELECTCONVERT(CHAR,칼럼) AS 칼럼명 FROM MY_TABLE --CHAR로 변환
expression :유효한 식 data_type :대상 데이터 형식 별칭 데이터 형식은 사용할 수 없습니다. length :대상 데이터 형식의 길이를 지정하는 선택적 정수입니다. 기본값은 30입니다. style :Convert함수가 식을 변환하는 방법을 지정하는 정수 식입니다. style이 Null이면 Null 값이 반환됩니다.
예제
--테이블(MY_TABLE)의 나이(AGE)칼럼을 INT에서 CHAR로 형변환--SELECTCONVERT(NVARCHAR(10),AGE)+'세'AS 나이 FROM MY_TABLE
--테이블(MY_TALBE)에서 날짜(DTS)칼럼을 INT에서 DATE로 형변환--SELECTCONVERT(DATE,SUBSTRING(DTS,1,8))AS 날짜 FROM MY_TABLE
Convert 날짜 변환 표
Cast
※ FLOAT, 또는 NUMBERIC에서 INTEGER로 변환할 때 CAST() 함수는 결과를 자릅니다.
사용법
--문법--CAST(expression AS data_type(length))
--예시--SELECTCAST(칼럼 ASINT) FROM MY_TABLE
예제
--테이블(MY_TALBE)에서 가격(PRICE)칼럼을 INT에서 VARCHAR로 형변환SELECTCAST(PRICEAS ASVARCHAR)AS 가격 FROM MY_TABLE
GETDATE
GETDATE함수는 현재 컴퓨터에 설정되어있는 시스템 시간을 불러와주는 함수입니다.
위와 같이 GETDATE() 함수는 년월일은 물론이거니와 분, 초 까지도 구해줍니다. 하지만 모든 사용자들이 위와 같은 형식으로 사용하지는 않겠죠. 여기서 우리는 우리가 표시할 시간이나 날짜만 적절히 뽑아 올 수도 있고 날짜 형태를 바꿔서 출력할 수도 있습니다.
사용법
--현재 날짜 출력--SELECT GETDATE() AS 시스템일자
--현재 날짜의 연,월,일 출력--SELECTYEAR(GETDATE()) AS 년,
MONTH(GETDATE()) AS 월,
DAY(GETDATE()) AS 일
DATEADD함수는 날짜에 원하는 일수를 더해서 출력해주는 함수입니다. 100일 뒤에는 며칠이다 이런 것은 쉽게 계산하기 힘든데 DATEADD함수를 쓰면 이런 것들을 편리하게 계산할 수 있습니다. 이 함수를 좀 더 응용하면 100일 뒤에는 무슨 요일이다 이렇게도 응용 가능합니다.
사용법
--2개월 후 출력--SELECT DATEADD(MM,2,GETDATE()) AS'2개월후'--30일전 출력--SELECTCONVERT(NVARCHAR(8),DATEADD(DAY,-30,'20180124'),112)AS'30일전'--1달 뒤 요일계산SELECT DATENAME(WEEKDAY,DATEADD(MM,1,GETDATE())) AS'요일계산'
DATEPART
DATEPART함수는 날짜에서 지정한 날짜 형식의 부분만 출력해주는 함수입니다. 아주 다양하게 활용이 가능한 함수입니다.