Overview: MySQL Last 30 Days
Robert Cooper
Robert Cooper Senior Engineer at Basedash
· January 31, 2025
Robert Cooper
Robert Cooper Senior Engineer at Basedash
· January 31, 2025
MySQL, a widely-used open-source relational database management system, often requires querying data based on time intervals. This guide focuses on extracting data from the last 30 days, a common requirement for reports and data analysis.
MySQL provides several functions to work with date and time values. The CURDATE() and NOW() functions are particularly useful for current date and time operations. To query data from the last 30 days, these functions can be combined with the DATE_SUB() function.
To fetch records from the last 30 days, use the DATE_SUB() function in your WHERE clause. This function subtracts a specified time interval from a date.
SELECT *
FROM your_table
WHERE your_date_column >= DATE_SUB(CURDATE(), INTERVAL 30 DAY);
In this query, your_table should be replaced with your actual table name and your_date_column with the column that contains the date information.
NOW() and CURDATE()There’s a subtle difference between NOW() and CURDATE() in MySQL:
NOW() returns the current date and time.CURDATE() returns only the current date.Depending on your data’s nature and your requirements, choose the one that suits your needs. For precise time calculations, NOW() is preferable.
SELECT *
FROM your_table
WHERE your_date_column >= DATE_SUB(NOW(), INTERVAL 30 DAY);
When dealing with multiple time zones, consider converting your dates to UTC or using the CONVERT_TZ() function for accurate results.
SELECT *
FROM your_table
WHERE CONVERT_TZ(your_date_column, 'System', 'UTC') >= DATE_SUB(UTC_DATE(), INTERVAL 30 DAY);
BETWEEN for Range QueriesThe BETWEEN operator can also be used for querying data within a specific range. This is particularly useful when you need data between two dates.
SELECT *
FROM your_table
WHERE your_date_column BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE();
WHERE clause is indexed.Basedash is built as an AI-native BI platform, so teams can go from ad hoc SQL to trusted answers and dashboards quickly, without the overhead of traditional BI setup.
This guide provides the essentials for querying MySQL data from the last 30 days. By understanding and utilizing MySQL’s date and time functions effectively, you can extract meaningful insights from your data in a time-efficient manner.
Written by
Senior Engineer at Basedash
Robert Cooper is a senior engineer at Basedash who builds full-stack product systems across SQL data infrastructure, APIs, and frontend architecture. His work focuses on application performance, developer velocity, and reliable self-hosted workflows that make data operations easier for teams at scale.
Basedash lets you build charts, dashboards, and reports in seconds using all your data.