SQL Server FORMAT in Snowflake, Databricks and BigQuery
FORMAT uses .NET format strings and an optional culture. None of the targets run .NET patterns: dates become TO_CHAR in Snowflake, date_format in Databricks and FORMAT_DATE in BigQuery, each with its own pattern letters.
SQL Server function: FORMAT(value, format [, culture]) · SQL Server docs
Format strings for each style code: CONVERT date styles in Snowflake, Databricks and BigQuery
Equivalents
| Target | Support | Syntax | Notes | Source |
|---|---|---|---|---|
| Snowflake | Rewrite | TO_CHAR(expr, 'YYYY-MM-DD') | 'yyyy-MM-dd' becomes 'YYYY-MM-DD'; 'HH:mm' becomes 'HH24:MI'. | Snowflake docs |
| Databricks | Rewrite | date_format(expr, 'yyyy-MM-dd') | Java-style patterns, close to .NET for common date formats. Use format_number for numbers. | Databricks docs |
| BigQuery | Rewrite | FORMAT_DATE('%Y-%m-%d', date) | Use FORMAT_DATETIME or FORMAT_TIMESTAMP for other types, and FORMAT for numbers. | BigQuery docs |
Behavior differences to check
- Culture-dependent output (month names, decimal separators) has no direct equivalent; the targets format in English. Check any FORMAT call that passes a culture such as 'de-DE'.
- Standard .NET format codes such as 'd', 'N2' or 'C' must be written out as explicit patterns in the target.
Examples
Order date as text
SELECT FORMAT(order_date, 'yyyy-MM-dd') AS order_day FROM orders;SELECT TO_CHAR(order_date, 'YYYY-MM-DD') AS order_day FROM orders;SELECT date_format(order_date, 'yyyy-MM-dd') AS order_day FROM orders;SELECT FORMAT_DATE('%Y-%m-%d', order_date) AS order_day FROM orders;