이 문서에서는 BigQuery의 이전 SQL 쿼리 구문이 지원하는 데이터 유형을 자세히 설명합니다. BigQuery의 기본 쿼리 구문은 GoogleSQL입니다. GoogleSQL의 데이터 유형에 대한 자세한 내용은 GoogleSQL 데이터 유형을 참조하세요.
legacy SQL 데이터 유형
데이터에는 다음 데이터 유형이 포함될 수 있습니다.
데이터 유형
가능한 값
STRING
가변 길이 문자(UTF-8) 데이터
BYTES
가변 길이 바이너리 데이터
가져온 BYTES 데이터는 Base64로 인코딩해야 하지만 BigQuery가 읽고 변환할 수 있는 Avro BYTES 데이터는 예외입니다.
BigQuery 테이블에서 읽은 BYTES 데이터는 Base64로 인코딩되지만, Avro 바이트 데이터 유형이 적용되는 Avro 형식으로 내보내는 경우는 예외입니다.
INTEGER
부호 있는 64비트 정수입니다.
BigQuery API를 사용해서 [-253+1, 253-1] 범위 밖의 정수(대부분의 경우 9,007,199,254,740,991을 초과하는 정수)를 정수(INT64) 열에 로드하려는 경우 데이터 손상 방지를 위해 이를 문자열로 전달해야 합니다.
이 문제는 JSON/ECMAScript의 정수 크기 제한으로 인해 발생합니다.
자세한 내용은 RFC 7159의 숫자 섹션을 참조하세요.
CSV 형식:1 또는 0, true 또는 false, t 또는 f, yes 또는 no, y 또는 n(모두 대소문자를 구분하지 않음)
JSON 형식:true 또는 false(대소문자를 구분하지 않음)
RECORD
하나 이상의 다른 필드 모음입니다.
TIMESTAMP
TIMESTAMP 데이터 유형은 UNIX 타임스탬프나 캘린더 날짜/시간으로 설명할 수 있습니다. BigQuery는 TIMESTAMP 데이터를 마이크로초 정밀도의 UNIX 타임스탬프로 내부에 저장합니다.
UNIX 타임스탬프
양수 또는 음수의 십진수입니다. 양수는 이폭(1970-01-01 00:00:00 UTC) 이후의 시간(초)을 지정하고, 음수는 이폭 이전의 시간(초)을 지정합니다. 소수점 이하 6자리(마이크로초 정밀도)까지 표기됩니다.
날짜 및 시간 문자열
YYYY-MM-DD HH:MM:SS 형식의 날짜 및 시간 문자열. UTC 및 Z 지정자가 지원됩니다.
날짜 및 시간 문자열에 시간대 오프셋을 제공할 수 있지만, BigQuery는 값을 내부 형식으로 변환한 후에 오프셋을 유지하지 않습니다. 원래 시간대의 데이터를 유지하고 싶다면 시간대 오프셋을 별도의 열에 저장하세요. 한 자릿수의 시간대 오프셋을 지정할 때는 앞에 0을 붙여야 합니다.
JSON 형식을 사용할 때는 날짜 및 시간 문자열을 따옴표로 묶어야 합니다.
예시
다음 예시는 특정 날짜를 UNIX 타임스탬프와 날짜 및 시간 문자열 형식으로 설명하는 동일한 방법을 보여줍니다.
이전 SQL은 DATE를 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 상용시를 참조하세요.
시간
이전 SQL은 TIME을 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 상용시를 참조하세요.
DATETIME
이전 SQL은 DATETIME을 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 상용시를 참조하세요.
legacy SQL의 정확한 숫자
SELECT list (with aliases), GROUP BY keys 같은 비수정 절에서 NUMERIC 또는 BIGNUMERIC 값을 읽고, 윈도우 함수에서 통과 필드 등을 읽을 수 있습니다. 하지만 비교를 포함하여 NUMERIC 또는 BIGNUMERIC 값에 대한 계산은 모두 정의되지 않은 결과를 생성합니다.
Legacy SQL에서 지원되는 전송 및 변환 함수는 다음과 같습니다.
CAST(<numeric> AS STRING)
CAST(<bignumeric> AS STRING)
CAST(<string> AS NUMERIC)
CAST(<string> AS BIGNUMERIC)
이전 SQL의 상용시
DATE, TIME, DATETIME과 같은 상용시 데이터 유형을 읽고 SELECT list (with aliases), GROUP BY keys, 윈도우 함수의 통과 필드와 같은 비수정 연산자로 처리할 수 있습니다. 하지만 비교를 포함하여 상용시 값에 대한 다른 모든 계산은 정의되지 않은 결과를 생성합니다.
Legacy SQL에서 지원되는 전송 및 변환 함수는 다음과 같습니다.
CAST(<date> AS STRING)
CAST(<time> AS STRING)
CAST(<datetime> AS STRING)
CAST(<string> AS DATE)
CAST(<string> AS TIME)
CAST(<string> AS DATETIME)
실제로 legacy SQL은 상용시 값을 정수로 해석하며, 상용시 값이라고 간주되는 정수에 대한 연산은 예기치 않은 결과를 생성합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eLegacy SQL supports a variety of data types, including STRING, BYTES, INTEGER, FLOAT, NUMERIC, BIGNUMERIC, BOOLEAN, RECORD, TIMESTAMP, DATE, TIME, and DATETIME.\u003c/p\u003e\n"],["\u003cp\u003eLegacy SQL has limited support for NUMERIC, BIGNUMERIC, DATE, TIME, and DATETIME data types, restricting their use to non-modifying operations and specific casting functions.\u003c/p\u003e\n"],["\u003cp\u003eFor data types such as BYTES, BigQuery reads and converts Avro BYTES data, and when reading from BigQuery tables it are base64-encoded unless exported to Avro format.\u003c/p\u003e\n"],["\u003cp\u003eTIMESTAMP data can be represented as either UNIX timestamps or date and time strings, with BigQuery internally storing them as UNIX timestamps with microsecond precision.\u003c/p\u003e\n"],["\u003cp\u003eWhile legacy SQL provides these types, GoogleSQL is the preferred query syntax and offers full support for all SQL operations on DATE, DATETIME, and TIME data types.\u003c/p\u003e\n"]]],[],null,["# Legacy SQL data types\n=====================\n\n\nThis document details the data types supported by BigQuery's\nlegacy SQL query syntax. The preferred query syntax for BigQuery\nis GoogleSQL. For information on data types in GoogleSQL, see\nthe [GoogleSQL data types](/bigquery/docs/reference/standard-sql/data-types).\n\nLegacy SQL data types\n---------------------\n\nYour data can include the following data types:\n\nExact numeric in legacy SQL\n---------------------------\n\nYou can read NUMERIC or BIGNUMERIC values in non-modifying clauses such as\n`SELECT list (with aliases)`, `GROUP BY keys`, and pass-through fields in\nwindow functions, and so on. However, any computation over NUMERIC or\nBIGNUMERIC values, including comparisons, produces undefined results.\n\nThe following cast and conversion functions are supported in legacy SQL:\n\n- `CAST(\u003cnumeric\u003e AS STRING)`\n- `CAST(\u003cbignumeric\u003e AS STRING)`\n- `CAST(\u003cstring\u003e AS NUMERIC)`\n- `CAST(\u003cstring\u003e AS BIGNUMERIC)`\n\nCivil time in legacy SQL\n------------------------\n\nYou can read civil time data types---DATE, TIME, and\nDATETIME---and process them with non-modifying operators such as\n`SELECT list (with aliases)`, `GROUP BY keys`, and pass-through fields in\nwindow functions, etc. However, any other computation over civil time values,\nincluding comparisons, produces undefined results.\n\nThe following casts and conversion functions are supported in legacy SQL:\n\n- `CAST(\u003cdate\u003e AS STRING)`\n- `CAST(\u003ctime\u003e AS STRING)`\n- `CAST(\u003cdatetime\u003e AS STRING)`\n- `CAST(\u003cstring\u003e AS DATE)`\n- `CAST(\u003cstring\u003e AS TIME)`\n- `CAST(\u003cstring\u003e AS DATETIME)`\n\nIn practice, legacy SQL interprets civil time values as integers, and operations\non integers that you think are civil time values produce unexpected results.\n\nTo compute values using civil time data types, consider\n[GoogleSQL](/bigquery/sql-reference), which supports all SQL\noperations on the\n[DATE](/bigquery/sql-reference/data-types#date-type),\n[DATETIME](/bigquery/sql-reference/data-types#datetime-type), and\n[TIME](/bigquery/sql-reference/data-types#time-type) data types.\n\nWhat's next\n-----------\n\n- To set a field's data type using the API, see [`schema.fields.type`](/bigquery/docs/reference/rest/v2/tables#TableFieldSchema.FIELDS.type).\n- For GoogleSQL data types, see [data types](/bigquery/sql-reference/data-types)."]]