# Class StandardSqlDataType (3.42.1)

3.42.1 (latest) 3.42.0 3.41.0 3.40.1 3.39.0 3.38.0 3.37.0 3.36.0 3.35.1 3.34.0 3.33.0 3.31.0 3.30.0 3.29.0 3.27.0 3.26.0 3.25.0 3.24.0 3.23.1 3.22.0 3.21.0 3.20.1 3.19.0 3.18.0 3.17.2 3.16.0 3.15.0 3.14.1 3.13.0 3.12.0 3.11.4 3.4.0 3.3.6 3.2.0 3.1.0 3.0.1 2.34.4 2.33.0 2.32.0 2.31.0 2.30.1 2.29.0 2.28.1 2.27.1 2.26.0 2.25.2 2.24.1 2.23.3 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.1 2.15.0 2.14.0 2.13.1 2.12.0 2.11.0 2.10.0 2.9.0 2.8.0 2.7.0 2.6.2 2.5.0 2.4.0 2.3.1 2.2.0 2.1.0 2.0.0 1.28.2 1.27.2 1.26.1 1.25.0 1.24.0 1.23.1 1.22.0 1.21.0 1.20.0 1.19.0 1.18.0 1.17.0 1.16.0

    StandardSqlDataType(
        type_kind: typing.Optional[
            google.cloud.bigquery.enums.StandardSqlTypeNames
        ] = StandardSqlTypeNames.TYPE_KIND_UNSPECIFIED,
        array_element_type: typing.Optional[
            google.cloud.bigquery.standard_sql.StandardSqlDataType
        ] = None,
        struct_type: typing.Optional[
            google.cloud.bigquery.standard_sql.StandardSqlStructType
        ] = None,
        range_element_type: typing.Optional[
            google.cloud.bigquery.standard_sql.StandardSqlDataType
        ] = None,
    )

The type of a variable, e.g., a function argument.

See:
<https://cloud.google.com/bigquery/docs/reference/rest/v2/StandardSqlDataType>

Examples:

    INT64: {type_kind="INT64"}
    ARRAY: {type_kind="ARRAY", array_element_type="STRING"}
    STRUCT<x STRING, y ARRAY>: {
        type_kind="STRUCT",
        struct_type={
            fields=[
                {name="x", type={type_kind="STRING"}},
                {
                    name="y",
                    type={type_kind="ARRAY", array_element_type="DATE"}
                }
            ]
        }
    }
    RANGE: {type_kind="RANGE", range_element_type="DATETIME"}

| ## Parameters ||
|---|---|
| **Name** | **Description** |
| `type_kind` | `typing.Optional[https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.enums.StandardSqlTypeNames]` The top level type of this field. Can be any standard SQL data type, e.g. INT64, DATE, ARRAY. |
| `array_element_type` | `typing.Optional[StandardSqlDataType]` The type of the array's elements, if type_kind is ARRAY. |
| `struct_type` | `typing.Optional[StandardSqlStructType]` The fields of this struct, in order, if type_kind is STRUCT. |
| `range_element_type` | `typing.Optional[StandardSqlDataType]` The type of the range's elements, if type_kind is RANGE. |

## Properties

### array_element_type

The type of the array's elements, if type_kind is ARRAY.

### range_element_type

The type of the range's elements, if type_kind = "RANGE". Must be
one of DATETIME, DATE, or TIMESTAMP.

### struct_type

The fields of this struct, in order, if type_kind is STRUCT.

### type_kind

The top level type of this field.

Can be any standard SQL data type, e.g. INT64, DATE, ARRAY.

## Methods

### from_api_repr

    from_api_repr(resource: typing.Dict[str, typing.Any])

Construct an SQL data type instance given its API representation.

### to_api_repr

    to_api_repr() -> typing.Dict[str, typing.Any]

Construct the API resource representation of this SQL data type.