식의 데이터 형식(보고서 작성기 및 SSRS)Data Types in Expressions (Report Builder and SSRS)

데이터 형식은 여러 종류의 데이터를 나타낼 때 이를 효율적으로 저장하고 처리할 수 있도록 합니다.Data types represent different kinds of data so that it can be stored and processed efficiently. 일반적인 데이터 형식으로는 텍스트(문자열이라고도 함), 소수 자릿수가 있거나 없는 숫자, 날짜 및 시간, 이미지 등이 있습니다.Typical data types include text (also known as strings), numbers with and without decimal places, dates and times, and images. 보고서의 값은 RDL(Report Definition Language) 데이터 형식이어야 합니다.Values in a report must be an Report Definition Language (RDL) data type. 보고서에서 값을 표시할 때 원하는 대로 값의 형식을 지정할 수 있습니다.You can format a value according to your preference when you display it in a report. 예를 들어 통화를 나타내는 필드는 보고서 정의에 부동 소수점 숫자로 저장되지만 이를 표시할 때는 사용자가 선택한 형식 속성에 따라 다양한 형식을 사용할 수 있습니다.For example, a field that represents currency is stored in the report definition as a floating point number, but can be displayed in a variety of formats depending on the format property you choose.

표시 형식에 대한 자세한 내용은 보고서 항목 서식 지정(보고서 작성기 및 SSRS)을 참조하세요.For more information about display formats, see Formatting Report Items (Report Builder and SSRS).

참고

SQL Server Data Tools의 보고서 작성기 및 보고서 디자이너에서 페이지를 매긴 보고서 정의(.rdl) 파일을 만들고 수정할 수 있습니다.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. 각 제작 환경에서는 보고서 및 관련 항목을 만들고, 열고, 저장할 수 있는 여러 방법을 제공합니다.Each authoring environment provides different ways to create, open, and save reports and related items.

RDL(Report Definition Language) 데이터 형식 및 CLR(공용 언어 런타임) 데이터 형식Report Definition Language (RDL) Data Types and Common Language Runtime (CLR) Data Types

RDL 파일에 지정된 값은 RDL 데이터 형식이어야 합니다.Values that are specified in an RDL file must be an RDL data type. 보고서를 컴파일 및 처리할 때 RDL 데이터 형식은 CLR 데이터 형식으로 변환됩니다.When the report is compiled and processed, RDL data types are converted to CLR data types. 다음 표에는 기본값으로 표시되는 변환이 나와 있습니다.The following table displays the conversion, which is marked Default:

RDL 형식RDL Type CLR 형식CLR Types
문자열String 기본값: 문자열Default: String

Chart, GUID, TimespanChart, GUID, Timespan
BooleanBoolean 기본값: 부울Default: Boolean
정수Integer 기본값: Int64Default: Int64

Int16, Int32, Uint16, Uint64, Byte, SbyteInt16, Int32, Uint16, Uint64, Byte, Sbyte
DateTimeDateTime 기본값: 날짜/시간Default: DateTime

DateTimeOffsetDateTimeOffset
부동Float 기본값: DoubleDefault: Double

Single, DecimalSingle, Decimal
이진Binary 기본값: Byte[]Default: Byte[]
VariantVariant Byte[]를 제외한 위의 모든 항목Any of the above except Byte[]
VariantArrayVariantArray Variant의 배열Array of Variant
직렬화 가능Serializable Serializable로 표시되어 있거나 ISerializable을 구현하는 형식 또는 VariantVariant or types marked with Serializable or that implement ISerializable.

데이터 형식 이해 및 식 작성Understanding Data Types and Writing Expressions

예를 들어 그룹 또는 필터 식을 정의하거나 집계를 계산할 때와 같이 식을 작성하여 값을 비교하거나 조합하는 경우에는 데이터 형식을 이해하는 것이 중요합니다.It is important to understand data types when you write expressions to compare or combine values, for example, when you define group or filter expressions, or calculate aggregates. 비교 및 계산은 데이터 형식이 동일한 항목 간에만 유효합니다.Comparisons and calculations are valid only between items of the same data type. 데이터 형식이 일치하지 않는 경우에는 식을 사용하여 보고서 항목의 데이터 형식을 명시적으로 변환해야 합니다.If the data types do not match, you must explicitly convert the data type in the report item by using an expression.

다음 목록에서는 데이터를 다른 데이터 형식으로 변환해야 하는 경우를 설명합니다.The following list describes cases when you may need to convert data to a different data type:

  • 한 데이터 형식의 보고서 매개 변수 값을 다른 데이터 형식의 데이터 집합 필드와 비교할 경우Comparing the value of a report parameter of one data type to a dataset field of a different data type.

  • 서로 다른 데이터 형식의 값을 비교하는 필터 식을 작성할 경우Writing filter expressions that compare values of different data types.

  • 서로 다른 데이터 형식의 필드를 조합하는 정렬 식을 작성할 경우Writing sort expressions that combine fields of different data types.

  • 서로 다른 데이터 형식의 필드를 조합하는 그룹 식을 작성할 경우Writing group expressions that combine fields of different data types.

  • 데이터 원본에서 검색된 값을 한 데이터 형식에서 다른 데이터 형식으로 변환할 경우Converting a value retrieved from the data source from one data type to a different data type.

보고서 데이터의 데이터 형식 확인Determining the Data Type of Report Data

보고서 항목의 데이터 형식을 확인하려면 해당 항목의 데이터 형식을 반환하는 식을 작성합니다.To determine the data type of a report item, you can write an expression that returns its data type. 예를 들어 MyField필드의 데이터 형식을 표시하려면 테이블 셀에 =Fields!MyField.Value.GetType().ToString()식을 추가합니다.For example, to show the data type for the field MyField, add the following expression to a table cell: =Fields!MyField.Value.GetType().ToString(). 그러면 MyField를 나타내는 데 사용되는 System.String 또는 System.DateTime등의 CLR 데이터 형식이 표시됩니다.The result displays the CLR data type used to represent MyField, for example, System.String or System.DateTime.

데이터 집합 필드를 다른 데이터 형식으로 변환Converting Dataset Fields to a Different Data Type

데이터 집합 필드를 보고서에 사용하기 전에 변환할 수도 있습니다.You can also convert dataset fields before you use them in a report. 다음 목록에서는 기존 데이터 집합 필드를 변환하는 방법을 설명합니다.The following list describes ways that you can convert an existing dataset field:

  • 데이터 집합 쿼리를 수정하여 변환된 데이터가 있는 새 쿼리 필드를 추가합니다.Modify the dataset query to add a new query field with the converted data. 관계형 또는 다차원 데이터 원본의 경우 데이터 원본 리소스를 사용하여 변환이 수행됩니다.For relational or multidimensional data sources, this uses data source resources to perform the conversion.

  • 하나의 결과 집합 열에 있는 모든 데이터를 다른 데이터 형식의 새 열로 변환하는 식을 작성하여 기존 보고서 데이터 집합 필드를 기반으로 하는 계산 필드를 만듭니다.Create a calculated field based on an existing report dataset field by writing an expression that converts all the data in one result set column to a new column with a different data type. 예를 들어 =CStr(Fields!Year.Value) 식은 Year 필드를 정수 값에서 문자열 값으로 변환합니다.For example, the following expression converts the field Year from an integer value to a string value: =CStr(Fields!Year.Value). 자세한 내용은 보고서 데이터 창에서 필드 추가, 편집, 새로 고침(보고서 작성기 및 SSRS)을 참조하세요.For more information, see Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS).

  • 사용 중인 데이터 처리 확장 프로그램에 미리 형식이 지정된 데이터를 검색하기 위한 메타데이터가 포함되어 있는지 확인합니다.Check whether the data processing extension you are using includes metadata for retrieving preformatted data. 예를 들어 SQL ServerSQL Server Analysis ServicesAnalysis Services MDX 쿼리에는 큐브를 처리할 때 이미 형식이 지정된 큐브 값에 대한 FORMATTED_VALUE 확장 속성이 포함되어 있습니다.For example, a SQL ServerSQL Server Analysis ServicesAnalysis Services MDX query includes a FORMATTED_VALUE extended property for cube values that have already been formatted when processing the cube. 자세한 내용은 Analysis Services 데이터베이스에 대한 확장 필드 속성(SSRS)을 참조하세요.For more information, see Extended Field Properties for an Analysis Services Database (SSRS).

매개 변수 데이터 형식 이해Understanding Parameter Data Types

보고서 매개 변수는 Boolean, DateTime, Integer, Float 또는 Text(String이라고도 함) 데이터 형식 중 하나여야 합니다.Report parameters must be one of five data types: Boolean, DateTime, Integer, Float, or Text (also known as String). 데이터 집합 쿼리에 쿼리 매개 변수가 포함되는 경우 보고서 매개 변수가 자동으로 만들어져 쿼리 매개 변수에 연결됩니다.When a dataset query includes query parameters, report parameters are automatically created and linked to the query parameters. 보고서 매개 변수의 기본 데이터 형식은 String입니다.The default data type for a report parameter is String. 보고서 매개 변수의 기본 데이터 형식을 변경하려면 보고서 매개 변수 속성 대화 상자의 일반 페이지에 있는 데이터 형식 드롭다운 목록에서 올바른 값을 선택합니다.To change the default data type of a report parameter, select the correct value from the Data type drop-down list on the General page of the Report Parameter Properties dialog box.

참고

DateTime 데이터 형식인 보고서 매개 변수는 밀리초를 지원하지 않습니다.Report parameters that are DateTime data types do not support milliseconds. 밀리초가 포함된 값을 기반으로 하는 매개 변수를 만들 수 있지만 사용 가능한 값 드롭다운 목록에서 밀리초가 포함된 날짜 또는 시간 값이 들어 있는 값을 선택할 수는 없습니다.Although you can create a parameter based on values that include milliseconds, you cannot select a value from an available values drop-down list that includes Date or Time values that include milliseconds.

데이터 형식을 변환하거나 데이터의 일부를 추출하는 식 작성Writing Expressions that Convert Data Types or Extract Parts of Data

연결 연산자(&)를 사용하여 텍스트와 데이터 집합 필드를 조합하는 경우 CLR(공용 언어 런타임)에서는 일반적으로 기본 형식을 제공합니다.When you combine text and dataset fields using the concatenation operator (&), the common language runtime (CLR) generally provides default formats. 데이터 집합 필드 또는 매개 변수를 특정 데이터 형식으로 명시적으로 변환해야 하는 경우에는 CLR 메서드 또는 Visual Basic 런타임 라이브러리 함수를 사용하여 데이터를 변환해야 합니다.When you need to explicitly convert a dataset field or parameter to a specific data type, you must use a CLR method or a Visual Basic runtime library function to convert the data.

다음 표에서는 데이터 형식의 변환 예를 보여 줍니다.The following table shows examples of converting data types.

변환 유형Type of conversion 예제Example
DateTime을 String으로 변환DateTime to String =CStr(Fields!Date.Value)
String을 DateTime으로 변환String to DateTime =DateTime.Parse(Fields!DateTimeinStringFormat.Value)
String을 DateTimeOffset으로 변환String to DateTimeOffset =DateTimeOffset.Parse(Fields!DateTimeOffsetinStringFormat.Value)
연도 추출Extracting the Year =Year(Fields!TimeinStringFormat.Value)

-- or --

=Year(Fields!TimeinDateTimeFormat.Value)
Boolean을 Integer로 변환Boolean to Integer =CInt(Parameters!BooleanField.Value)

-1은 True이고 0은 False입니다.-1 is True and 0 is False.
Boolean을 Integer로 변환Boolean to Integer =System.Convert.ToInt32(Fields!BooleanFormat.Value)

1은 True이고 0은 False입니다.1 is True and 0 is False.
DateTimeOffset 값의 DateTime 부분만 변환Just the DateTime part of a DateTimeOffset value =Fields!MyDatetimeOffset.Value.DateTime
DateTimeOffset 값의 Offset 부분만 변환Just the Offset part of a DateTimeOffset value =Fields!MyDatetimeOffset.Value.Offset

Format 함수를 사용하여 값의 표시 형식을 제어할 수도 있습니다.You can also use the Format function to control the display format for value. 자세한 내용은 함수(Visual Basic)를 참조하세요.For more information, see Functions (Visual Basic).

고급 예제Advanced Examples

데이터 원본의 모든 데이터 형식에 대한 변환을 지원하지 않는 데이터 공급자를 사용하여 데이터 원본에 연결하는 경우 지원되지 않는 데이터 원본 형식의 기본 데이터 형식은 String이 됩니다.When you connect to a data source with a data provider that does not provide conversion support for all the data types on the data source, the default data type for unsupported data source types is String. 다음 예제에서는 문자열로 반환되는 특정 데이터 형식에 대한 솔루션을 제공합니다.The following examples provide solutions to specific data types that are returned as a string.

String 및 CLR DateTimeOffset 데이터 형식 연결Concatenating a String and a CLR DateTimeOffset Data Type

대부분의 데이터 형식에 대해 CLR에서는 사용자가 & 연산자를 사용하여 데이터 형식이 각기 다른 값을 하나의 문자열로 연결할 수 있도록 기본 변환을 제공합니다.For most data types, the CLR provides default conversions so that you can concatenate values that are different data types into one string by using the & operator. 예를 들어 ="The date and time are: " & Fields!StartDate.Value 식은 "The date and time are:"라는 텍스트와 DateTime 값인 데이터 집합 필드 StartDate를 연결합니다.For example, the following expression concatenates the text "The date and time are: " with a dataset field StartDate, which is a DateTime value: ="The date and time are: " & Fields!StartDate.Value.

일부 데이터 형식의 경우에는 ToString 함수를 포함해야 할 수 있습니다.For some data types, you may need to include the ToString function. 예를 들어 다음 식은 CLR 데이터 형식을 사용 하 여 동일한 예제를 보여 줍니다 DateTimeOffset, 날짜, 시간 및 표준 시간대의 UTC 표준 시간대에 상대적으로 오프셋을 포함 하는: ="The time is: " & Fields!StartDate.Value.ToString()합니다.For example, the following expression shows the same example using the CLR data type DateTimeOffset, which include the date, the time, and a time-zone offset relative to the UTC time zone: ="The time is: " & Fields!StartDate.Value.ToString().

String 데이터 형식을 CLR DateTime 데이터 형식으로 변환Converting a String Data Type to a CLR DateTime Data Type

데이터 처리 확장 프로그램에서 데이터 원본에 정의된 일부 데이터 형식을 지원하지 않는 경우 데이터는 텍스트로 검색될 수 있습니다.If a data processing extension does not support all data types defined on a data source, the data may be retrieved as text. 예를 들어 datetimeoffset(7) 데이터 형식 값은 String 데이터 형식으로 검색될 수 있습니다.For example, a datetimeoffset(7) data type value may be retrieved as a String data type. 오스트레일리아의 퍼스에서 2008년 7월 1일 오전 6:05:07.9999999의 문자열 값은 다음과In Perth, Australia, the string value for July 1, 2008, at 6:05:07.9999999 A.M. 같습니다.would resemble:

2008-07-01 06:05:07.9999999 +08:00

이 예제에서는 날짜(2008년 7월 1일), 소수 자릿수가 7개인 시간(오전 6:05:07.9999999), 시간 및 분 단위의 UTC 표준 시간대 오프셋(더하기 8시간 0분)을 차례로 보여 줍니다.This example shows the date (July 1, 2008), followed by the time to a 7-digit precision (6:05:07.9999999 A.M.), followed by a UTC time zone offset in hours and minutes (plus 8 hours, 0 minutes). 다음 예제에서 이 값은 라는 String MyDateTime.Value필드에 배치됩니다.For the following examples, this value has been placed in a String field called MyDateTime.Value.

다음 방법 중 하나를 사용하여 이 데이터를 하나 이상의 CLR 값으로 변환할 수 있습니다.You can use one of the following strategies to convert this data to one or more CLR values:

  • 입력란에서 식을 사용하여 문자열의 일부를 추출합니다.In a text box, use an expression to extract parts of the string. 예를 들어For example:

    • 다음 식은 UTC 표준 시간대 오프셋의 시간 부분만 추출하여 분으로 변환합니다. =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60The following expression extracts just the hour part of the UTC time zone offset and converts it to minutes: =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60

      결과는 480입니다.The result is 480.

    • 다음 식은 문자열을 날짜 및 시간 값으로 변환합니다. =DateTime.Parse(Fields!MyDateTime.Value)The following expression converts the string to a date and time value: =DateTime.Parse(Fields!MyDateTime.Value)

      MyDateTime.Value 문자열에 UTC 오프셋이 있는 경우 DateTime.Parse 함수는 먼저 UTC 오프셋(오전 7시:If the MyDateTime.Value string has a UTC offset, the DateTime.Parse function first adjusts for the UTC offset (7 A.M. UTC 시간인 전날 밤 오후 11시 + [+08:00])에 맞게- [+08:00] to the UTC time of 11 P.M. 조정합니다.the night before). 그런 다음 DateTime.Parse 함수는 로컬 보고서 서버의 UTC 오프셋을 적용하고, 필요한 경우 일광 절약 시간제에 맞게 시간을 다시 조정합니다.The DateTime.Parse function then applies the local report server UTC offset and, if necessary, adjusts the time again for Daylight Saving Time. 예를 들어 워싱턴의 레드몬드에서 일광 절약 시간제에 맞게 조정된 현지 시간 오프셋은 [-07:00]이거나 오후 11시로부터 7시간 전입니다.For example, in Redmond, Washington, the local time offset adjusted for Daylight Saving Time is [-07:00], or 7 hours earlier than 11 PM. 결과 DateTime 값은 2007-07-06 04:07:07 PM (2007년 7월 6일 오후 4:07)입니다.The result is the following DateTime value: 2007-07-06 04:07:07 PM (July 6, 2007 at 4:07 P.M).

    문자열을 DateTime 데이터 형식으로 변환하는 방법은 MSDN의 날짜 및 시간 문자열 구문 분석, 특정 Culture의 날짜 및 시간 형식 지정Choosing Between DateTime, DateTimeOffset및 TimeZoneInfo 을 참조하세요.For more information about converting strings to DateTime data types, see Parsing Date and Time Strings, Formatting Date and Time for a Specific Culture, and Choosing Between DateTime, DateTimeOffset, and TimeZoneInfo on MSDN.

  • 식을 사용하여 문자열의 일부를 추출하는 새 계산 필드를 보고서 데이터 집합에 추가합니다.Add a new calculated field to the report dataset that uses an expression to extract parts of the string. 자세한 내용은 보고서 데이터 창에서 필드 추가, 편집, 새로 고침(보고서 작성기 및 SSRS)을 참조하세요.For more information, see Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS).

  • Transact-SQLTransact-SQL 함수로 날짜 및 시간 값을 독립적으로 추출하여 별도의 열을 만들도록 보고서 데이터 집합 쿼리를 변경합니다.Change the report dataset query to use Transact-SQLTransact-SQL functions to extract the date and time values independently to create separate columns. 다음 예제에서는 DatePart 함수를 사용하여 연도에 대한 열과 분으로 변환된 UTC 표준 시간대에 대한 열을 추가하는 방법을 보여 줍니다.The following example shows how to use the function DatePart to add a column for the year and a column for the UTC time zone converted to minutes:

    SELECT

    MyDateTime,

    DATEPART(year, MyDateTime) AS Year,

    DATEPART(tz, MyDateTime) AS OffsetinMinutes

    FROM MyDates

    결과 집합에는 세 개의 열이 있습니다.The result set has three columns. 첫 번째 열은 날짜 및 시간 열이고, 두 번째 열은 연도 열이며, 세 번째 열은 UTC 오프셋(분) 열입니다.The first column is the date and time, the second column is the year, and the third column is the UTC offset in minutes. 다음 행에서는 예제 데이터를 보여 줍니다.The following row shows example data:

    2008-07-01 06:05:07 2008 480

    SQL ServerSQL Server 데이터베이스 데이터 형식에 대한 자세한 내용은 SQL Server 온라인 설명서데이터 형식(Transact-SQL)날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하세요.For more information about SQL ServerSQL Server database data types, see Data Types (Transact-SQL), and Date and Time Data Types and Functions (Transact-SQL) in SQL Server Books Online.

    SQL ServerSQL Server Analysis ServicesAnalysis Services 데이터 형식에 대한 자세한 내용은 SQL Server 온라인 설명서Analysis Services의 데이터 형식을 참조하세요.For more information about SQL ServerSQL Server Analysis ServicesAnalysis Services data types, see Data Types in Analysis Services in SQL Server Books Online.

관련 항목:See Also

보고서 항목 서식 지정(보고서 작성기 및 SSRS)Formatting Report Items (Report Builder and SSRS)