1. Introduction
In MySQL databases, working with date and time data is very common. While dates are stored in a standard format within the database, you often need to display them in a more user-friendly way. This is where the DATE_FORMAT
function becomes useful.
In this article, we’ll explain how to use the DATE_FORMAT
function, explore various formatting options, and walk through practical examples to help you implement it effectively.
2. Overview of the DATE_FORMAT Function
2.1 What is the DATE_FORMAT Function?
The DATE_FORMAT
function in MySQL is used to convert date values into a specified format. Instead of displaying the date in the default YYYY-MM-DD format or datetime format, this function allows you to customize the output.
For example, if you want to show a date like “September 16, 2024” to users, the DATE_FORMAT
function makes it easy.
2.2 Basic Syntax
The basic syntax of the DATE_FORMAT
function is as follows:
DATE_FORMAT(date, format)
date
: The date value you want to format.format
: A string that specifies the desired output format.
Let’s take a look at a specific example:
SELECT DATE_FORMAT('2024-09-16', '%Y年%m月%d日') AS formatted_date;
This query formats the date ‘2024-09-16’ into the form “2024年09月16日”.

3. Date Format Parameters
3.1 List of Format Specifiers
The DATE_FORMAT
function supports a wide range of format specifiers. Here are some of the most commonly used ones:
%Y
: Four-digit year (e.g., 2024)%y
: Two-digit year (e.g., 24)%m
: Two-digit month (01 to 12)%c
: Month number (1 to 12)%d
: Two-digit day (01 to 31)%e
: Day of the month (1 to 31)%H
: Hour in 24-hour format (00 to 23)%h
or%I
: Hour in 12-hour format (01 to 12)%i
: Minutes (00 to 59)%s
: Seconds (00 to 59)%p
: AM or PM
3.2 Practical Examples
Let’s see some examples of how these format specifiers are used in queries:
SELECT
DATE_FORMAT('2024-09-16 14:35:59', '%Y-%m-%d %H:%i:%s') AS full_format,
DATE_FORMAT('2024-09-16 14:35:59', '%Y年%m月%d日') AS japanese_format,
DATE_FORMAT('2024-09-16 14:35:59', '%d/%m/%Y') AS european_format,
DATE_FORMAT('2024-09-16 14:35:59', '%h:%i %p') AS twelve_hour_format;
The output of this query would be:
full_format
: 2024-09-16 14:35:59japanese_format
: 2024年09月16日european_format
: 16/09/2024twelve_hour_format
: 02:35 PM
4. Practical Use Cases
4.1 Scenario 1: Generating Reports
For example, when generating monthly reports in a business setting, you may want to display dates in the “YYYY年MM月” format. The following query helps format report dates accordingly:
SELECT
DATE_FORMAT(sale_date, '%Y年%m月') AS report_month,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY report_month;
This query outputs total monthly sales with the date formatted like “2024年09月”.
4.2 Scenario 2: User Interface Display
DATE_FORMAT
is also useful for displaying readable dates in web applications. For example, on a user profile page, you can show the last login date like this:
SELECT
user_name,
DATE_FORMAT(last_login, '%Y/%m/%d %H:%i') AS last_login_formatted
FROM users;
This formats the last login time as “2024/09/16 14:35” for better readability.
4.3 Scenario 3: Query Optimization
DATE_FORMAT
can also aid in optimizing queries. For instance, when filtering records by a specific month:
SELECT
*
FROM transactions
WHERE DATE_FORMAT(transaction_date, '%Y-%m') = '2024-09';
This query extracts all transactions that occurred in September 2024.
5. Considerations and Best Practices for Using DATE_FORMAT
5.1 Performance Considerations
Using DATE_FORMAT
frequently can impact performance, especially with large datasets. Repeated formatting operations may increase processing time. When appropriate, consider storing pre-formatted date strings or handling formatting on the application side instead.
5.2 Localization
When building multilingual systems using DATE_FORMAT
, localization is essential. Date formats vary by country and region, so it’s important to dynamically adjust the format based on the user’s locale.
5.3 Consistency in Formatting
Maintaining a consistent date format across the entire system is crucial for a good user experience. Whether it’s in input forms, display views, or reports, using the same format helps avoid user confusion.
6. Conclusion
The DATE_FORMAT
function is a powerful tool for flexibly formatting date values in MySQL.
In this article, we’ve covered its basic usage, practical examples, and important considerations and best practices.
By using this function effectively, you can display dates in a way that is both user-friendly and visually clear.
As a next step, we recommend exploring more advanced date and time operations to further enhance your database handling.
7. References
- MySQL Official Documentation: DATE_FORMAT
- For additional related articles and tutorials, be sure to check the official documentation or specialized blogs regularly, as they are updated frequently.
We hope this article has helped you better understand and utilize the DATE_FORMAT
function in MySQL.