SQL DATE_FORMAT Function

Quick summary: The SQL DATE_FORMAT() function formats a date or datetime value according to a specified pattern (MySQL-compatible).

SQL DATE_FORMAT Syntax

TO_CHAR(timestamp, format_mask)
SQL

SQL DATE_FORMAT Basic examples

SELECT DATE_FORMAT('2026-02-08 14:30:00', '%Y-%m-%d');
SQL
Output:
2026-02-08

Formats a datetime into a date string.

SQL DATE_FORMAT Real-world usage

SELECT DATE_FORMAT(created_at, '%Y-%m') FROM orders;
SQL
Output:
Year-month values

Groups or displays dates by month.

SQL DATE_FORMAT Edge cases

SELECT DATE_FORMAT(NULL, '%Y-%m-%d');
SQL
Output:
NULL

Returns NULL when input is NULL.

SQL DATE_FORMAT Common mistakes

Using DATE_FORMAT in WHERE clauses

Functions prevent index usage.

Incorrect
WHERE DATE_FORMAT(created_at,'%Y-%m') = '2026-02'
Correct
WHERE created_at >= '2026-02-01' AND created_at < '2026-03-01'

Use date ranges for filtering.

SQL DATE_FORMAT Frequently Asked Questions

What does DATE_FORMAT() do in SQL?

Formats a date into a specific string format.

Use case of DATE_FORMAT()?

Display formatted dates.

Syntax?

DATE_FORMAT(date, format).

Common mistake?

Using DB-specific format syntax incorrectly.

Return type?

String.

Handles NULL?

Returns NULL.

Performance?

Moderate.

Alternative?

TO_CHAR (PostgreSQL).

Used in SELECT?

Yes.

Supports time formatting?

Yes.

Used in reports?

Yes.

Best practice?

Format in application when possible.

SQL DATE_FORMAT Related SQL Keywords