그러냐

MSSQL Cast, Convert 함수 사용 테스트 본문

mssql

MSSQL Cast, Convert 함수 사용 테스트

관절분리 2016. 1. 27. 17:51
반응형

 

MS-SQL로 작업을 하면서, 다양한 값 변환시, Cast, Convert 함수를 이용한다.

몇가지 변환 방법을 테스트 해 본다.

참조 : http://msdn.microsoft.com/ko-kr/library/ms187928.aspx

 

//////////// CAST 함수 /////////////

1. 날짜 문자열 -> smalldatetime 형으로

select cast('2009-12-21 10:30:31' as smalldatetime)
-----------------------
2009-12-21 10:31:00

 

2. datetime->timestamp 형으로; Default Unix time(1970년 1월 1일 부터의 Timestamp)
select cast('00:00:00' as timestamp)
------------------
0x30303A30303A3030

 

3. 문자열 + 정수
select 'Hello ' + cast(1234567 as nvarchar(10))
----------------
Hello 1234567

 

4. 문자열 + 정수(할당 공간 부족 nvarchar - 오류)
select 'Hello ' + cast(1234567 as nvarchar(5))
-----------
메시지 8115, 수준 16, 상태 2, 줄 8
expression을(를) 데이터 형식 nvarchar(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다.

 

5. 문자열 + 정수(할당 공간 부족 - varchar)
select 'Hello ' + cast(1234567 as varchar(5))
-----------
Hello *

 

6. 문자열 + 문자열(공간 잘림 nvarchar)
select 'Hello ' + cast('1234567' as nvarchar(5))
-----------
Hello 12345

 

7. 문자열 + 문자열(공간 잘림 - varchar)
select 'Hello ' + cast('1234567' as varchar(4))
----------
Hello 1234

 

8. 날짜 -> 문자열
select Cast(GetDate() as nvarchar(30))
------------------------------
09  1 2009 11:30AM

 

9. 날짜 -> 문자열(잘림)
select Cast(GetDate() as nvarchar(5))
-----
09  1

 

 

//////////// CONVERT 함수 //////////////

1. 날짜 -> 문자열 (Style 126)
SELECT CONVERT(nvarchar(30), GetDate(), 126)
------------------------------
2009-09-01T11:30:58.060

 

2. 날짜 -> 문자열 (Style 108)
SELECT CONVERT(nvarchar(30), GetDate(), 108)
------------------------------
11:30:58

 

3. 날짜(연산) -> 문자열 (Style 108)
SELECT CONVERT(nvarchar(30), GetDate()+'12:00:00', 108)
------------------------------
23:30:58

 

4. 16진수 -> 문자형(4 Bytes)
SELECT CONVERT(char(8), 0x4E616D65, 0)
--------
Name   

 

5. 문자형 -> Binary 형(4 Bytes)
SELECT CONVERT(binary(8), 'NAME', 2)
------------------
0x4E414D4500000000

반응형