If you want to retain control over data types for each column in your table, you can use Manual option in the Data Types dropdown. The down side is that you need to define the data type for each column separately so if you have many columns in your table, it can get really tedious.
You can set these data types:
There are couple things to keep in mind:
- Your data needs to be very coherent. If you set a column to INTEGER and one cell will actually be STRING, the upload will fail. Basically, if you say a column is INTEGER, then all values in the column really need to be INTEGERs.
- If you have a column with messy data (e. g. a mix of STRINGs, DATEs, and INTEGERs), use STRING.
- Your date columns need to be formatted in a supported format which BigQuery accepts. Read more here.
- Your datetime columns need to be formatted in a supported format which BigQuery accepts. Read more here.
We always try to make everything as easy as possible but in case of date and datetime, the rules around formatting are very strict and we all have to follow BigQuery guidelines. If you don’t feel like formatting your dates, you can still use STRING and then you can do CASTing in BigQuery.