dataengref migrate

Home / Oracle

Oracle TO_DATE in Snowflake, Databricks and BigQuery

Snowflake TO_DATE accepts Oracle-like format models. Databricks to_date uses Java patterns, and BigQuery uses PARSE_DATE with % elements. Oracle DATE also carries a time, while the targets' DATE does not.

Oracle function: TO_DATE(char [, fmt [, 'nlsparam']]) · Oracle docs

Equivalents

TargetSupportSyntaxNotesSource
SnowflakeSame nameTO_DATE(string_expr [, 'format'])Format elements such as YYYY, MM, DD, MON work as in Oracle. Returns a DATE without time; use TO_TIMESTAMP to keep the time.Snowflake docs
DatabricksSame nameto_date(expr, 'yyyy-MM-dd')Java-style patterns: 'YYYY-MM-DD' becomes 'yyyy-MM-dd'. Use try_to_date to get NULL instead of an error.Databricks docs
BigQueryRewritePARSE_DATE('%Y-%m-%d', string)Use PARSE_DATETIME to keep the time. SAFE.PARSE_DATE returns NULL on bad input.BigQuery docs

Behavior differences to check

Databricks

Examples

Parse dates from a staging column

Oracle
SELECT TO_DATE(order_day, 'YYYY-MM-DD') AS order_date FROM staging;
Snowflake
SELECT TO_DATE(order_day, 'YYYY-MM-DD') AS order_date FROM staging;
Databricks
SELECT to_date(order_day, 'yyyy-MM-dd') AS order_date FROM staging;
BigQuery
SELECT PARSE_DATE('%Y-%m-%d', order_day) AS order_date FROM staging;

Other Oracle functions

Last checked: · Paste a whole query into the SQL checker to find every function that needs a change.