SQL References by Patrik

How to Count Entries per Day in a Date Range Using SQL Server

When working with date and time data in SQL Server, you might want to find how many entries exist for each day within a specific timeframe. To do this, you need to:

  1. Extract the date part from a datetime column using CAST(date_column AS DATE). This removes the time portion and groups entries by day.
  2. Filter your data using a dynamic date range. For example, to select entries from 3 days ago up to 7 days in the future, use DATEADD with GETDATE().
  3. Use GROUP BY to count entries per day.

Here is an example query:

SELECT 
    CAST(date_column AS DATE) AS entry_date,
    COUNT(*) AS entry_count
FROM your_table
WHERE date_column BETWEEN CAST(DATEADD(DAY, -3, GETDATE()) AS DATE)
                      AND CAST(DATEADD(DAY, 7, GETDATE()) AS DATE)
GROUP BY CAST(date_column AS DATE)
ORDER BY entry_date;

This query lists each day in the timeframe along with the number of entries for that day. It’s useful for reports, activity summaries, or monitoring trends over time.

SQL
date
count
filter
SQLServer

Comments