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.