# Data types

SnowDDL supports [native Snowflake data types](https://docs.snowflake.com/en/sql-reference/intro-summary-data-types.html) only.

Synonyms and aliases are not allowed. Timestamp data types should be defined explicitly.

If data type has additional parameters (e.g. length), the full form should be used in all cases.

## Supported data types

* `NUMBER(x,y)`
* `FLOAT`
* `BINARY(x)`
* `BOOLEAN`
* `VARCHAR(x)`
* `DATE`
* `TIME(x)`
* `TIMESTAMP_LTZ(x)`
* `TIMESTAMP_NTZ(x)`
* `TIMESTAMP_TZ(x)`
* `VARIANT`
* `OBJECT`
* `ARRAY`
* `GEORGRAPHY`
* `VECTOR(x,y)`
* `FILE`
* `DECFLOAT(x)`
* `UUID`

## Rationale

* SnowDDL uses an actual data types obtained from `SHOW` and `DESC` commands to compare config with Snowflake metadata. Values should be exactly the same.
* It is much easier to find & replace data types in config when exactly the same syntax is being used in all cases. Especially when you have 1000+ tables to manage.
* TIMESTAMP data types have significant differences and are affected by various ACCOUNT PARAMETERS. It is very important for data engineers to understand it and to pick the correct data type depending on specific use case.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snowddl.com/guides/data-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
