dataengref migrate

Home / Oracle

Oracle TO_CHAR in Snowflake, Databricks and BigQuery

Snowflake TO_CHAR understands Oracle-style format models such as 'YYYY-MM-DD HH24:MI:SS'. Databricks to_char works on dates from Runtime 14.1 but uses Java-style patterns, and BigQuery uses FORMAT_DATE with % elements.

Oracle function: TO_CHAR(datetime [, fmt [, 'nlsparam']]) · Oracle docs

Equivalents

TargetSupportSyntaxNotesSource
SnowflakeSame nameTO_CHAR(expr [, 'format'])Format elements are close to Oracle: YYYY, MM, DD, HH24, MI, SS, MON, DY.Snowflake docs
DatabricksRewritedate_format(expr, 'yyyy-MM-dd HH:mm:ss')Java-style patterns: 'YYYY-MM-DD HH24:MI:SS' becomes 'yyyy-MM-dd HH:mm:ss'. to_char also accepts dates in Databricks Runtime 14.1 and above, with the same patterns.Databricks docs
BigQueryRewriteFORMAT_DATE('%Y-%m-%d', date) / FORMAT_DATETIME('%Y-%m-%d %H:%M:%S', dt)Use the FORMAT_* function that matches the input type.BigQuery docs

Behavior differences to check

Databricks

Examples

Timestamp as text

Oracle
SELECT TO_CHAR(created_at, 'YYYY-MM-DD HH24:MI:SS') AS created_text FROM events;
Snowflake
SELECT TO_CHAR(created_at, 'YYYY-MM-DD HH24:MI:SS') AS created_text FROM events;
Databricks
SELECT date_format(created_at, 'yyyy-MM-dd HH:mm:ss') AS created_text FROM events;
BigQuery
SELECT FORMAT_DATETIME('%Y-%m-%d %H:%M:%S', created_at) AS created_text FROM events;

Other Oracle functions

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