CAST 및 CONVERT(SQL Server Compact)

한 데이터 형식의 식을 다른 데이터 형식으로 명시적으로 변환합니다. CAST는 CONVERT의 구문이 변형된 것입니다.

구문

Syntax for CAST:
CAST ( expression AS data_type [ (length ) ])
Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] ,expression [ ,style ] )

인수

  • data_type
    대상 시스템에서 제공하는 데이터 형식은 bigint입니다. 사용자 정의 데이터 형식은 사용할 수 없습니다. 사용 가능한 데이터 형식에 대한 자세한 내용은 데이터 형식을 참조하십시오.

  • Length
    nchar, nvarchar, char, varchar, binary 또는 varbinary 데이터 형식의 옵션 매개 변수입니다.

  • Expression
    모든 유효한 SQL Server Compact 식입니다. 자세한 내용은 식(SQL Server Compact)을 참조하십시오.

  • Style
    datetime 또는 smalldatetime 데이터를 문자 데이터(nchar, nvarchar, char, varchar, nchar, nvarchar 데이터 형식)로 변환하는 데 사용되는 날짜 형식의 스타일 또는 float, real, money 또는 smallmoney 데이터를 문자 데이터(nchar, nvarchar, char, varchar, nchar, nvarchar 데이터 형식)로 변환하는 데 사용되는 문자열 형식의 스타일입니다. style이 NULL이면 결과도 NULL이 반환됩니다.

    자세한 내용은 이 항목 뒷부분의 "주의" 섹션을 참조하십시오.

주의

SQL Server Compact에서는 쿠웨이트 알고리즘을 사용하여 아랍어 스타일의 날짜 형식을 지원합니다.

다음 표 왼쪽의 두 열은 datetime 또는 smalldatetime을 문자 데이터로 변환하는 경우의 style 값을 나타냅니다. 세기를 포함한 네 자리 연도(yyyy)를 얻으려면 style 값에 100을 더합니다.

두 자리 연도(yy)

네 자리 연도(yyyy)

표준

입력/출력**

-

0 또는 100(*)

기본값

mon dd yyyy hh:mi AM(또는 PM)

1

101

미국

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

3

103

영국/프랑스

dd/mm/yy

4

104

독일

dd.mm.yy

5

105

이탈리아

dd-mm-yy

6

106

-

dd mon yy

7

107

-

Mon dd, yy

8

108

-

hh:mm:ss

-

9 또는 109(*)

기본값 + 밀리초

mon dd yyyy hh:mi:ss:mmm AM (or PM)

10

110

미국

mm-dd-yy

11

111

일본

yy/mm/dd

12

112

ISO

Yymmdd

-

13 또는 113(*)

유럽 기본값 + 밀리초

dd mon yyyy hh:mm:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20 또는120(*)

ODBC 표준

yyyy-mm-dd hh:mi:ss(24h)

-

21 또는121(*)

ODBC 표준(밀리초 포함)

yyyy-mm-dd hh:mi:ss.mmm(24h)

-

126(***)

ISO8601

yyyy-mm-ddThh:mm:ss.mmm(공백 없음)

-

130*

회교식****

dd mon yyyy hh:mi:ss:mmm AM

-

131*

회교식****

dd/mm/yy hh:mi:ss:mmm AM

* 기본값(style이 0 또는 100, 9 또는 109, 13 또는 113, 20 또는 120, 21 또는 121인 경우)은 항상 네 자리 연도(yyyy)를 반환합니다.

** datetime으로 변환할 때의 입력 문자 데이터로 변환할 때의 출력

*** XML용으로 고안됨. datetime 또는 smalldatetime을 character 데이터로 변환하는 경우 출력 형식은 표에서 설명한 것과 같습니다. float, money 또는 smallmoney를 character 데이터로 변환하는 경우 출력은 style 2와 같으며, real을 character 데이터로 변환하는 경우에는 style 1과 같습니다.

****회교식 달력 시스템에는 여러 가지 형태가 있는데 SQL Server Compact에서는 쿠웨이트 알고리즘을 사용합니다.

다음 표에서는 float 또는 real을 문자 데이터로 변환하는 경우의 style 값을 보여 줍니다.

출력

0(기본값)

최대 6자리 수입니다. 해당되는 경우 과학 표기법을 사용하십시오.

1

항상 8자리 수입니다. 항상 과학 표기법을 사용하십시오.

2

항상 16자리 수입니다. 항상 과학 표기법을 사용하십시오.

다음 표의 왼쪽 두 열에는 money 또는 smallmoney를 문자 데이터로 변환하는 경우의 스타일 값이 표시됩니다.

출력

0(기본값)

소수점 앞에 쉼표가 없으며 소수점 이하 두 자리인 수입니다(예: Example: 4235.98.

1

소수점 앞 세 자리마다 쉼표가 있으며 소수점 이하 두 자리인 수입니다(예: 3,510.92).

2

소수점 앞에 쉼표가 없으며 소수점 이하 네 자리인 수입니다(예: 4235.9819).

numeric 또는 decimal 데이터를 문자 데이터로 변환할 때 결과 집합에서 뒤에 오는 0을 삭제하려면 style 128을 사용합니다.

중요

nchar, nvarchar, binary 및 varbinary에 CAST 또는 CONVERT를 사용할 경우 SQL Server에서는 값을 최대 30자까지 자릅니다. SQL Server Compact는 nchar 및 nvarchar에 대해 4000을, binary 및 varbinary에 대해 8000을 허용합니다. 따라서 SQL Server와 SQL Server Compact를 쿼리하여 생성된 결과는 서로 다릅니다. 데이터 형식의 크기가 nchar(200), nvarchar(200), binary(400), varbinary(400)과 같이 지정된 경우에는 결과가 SQL Server 및 SQL Server Compact 전체에서 일관되게 유지됩니다.

다음 그림에서는 SQL Server Compact의 명시적 및 암시적 데이터 변환을 보여 줍니다.

명시적 및 암시적 데이터 변환

다음 예에서는 datetime 값을 nvarchar 값으로 변환합니다.

SELECT OrderDate, CONVERT(nvarchar(10), OrderDate, 101)
FROM Orders

한 데이터 형식의 식을 다른 데이터 형식으로 변환합니다. 다음 예에서 변환 결과는 10입니다.

SELECT CAST(10.6496 AS int)

대상 데이터 형식의 소수 자릿수가 원본 데이터 형식의 소수 자릿수보다 적은 데이터 형식을 변환할 경우 값이 반올림됩니다. 예를 들어 다음 변환의 결과는 $10.3497입니다.

SELECT CAST(10.3496847 AS money)