A date range query returns records whose Date/Time value falls inside a period you define. The basic Access criteria are simple, but fields that also contain a time require a carefully chosen upper boundary.
Last updated: August 28, 2026.
Filter between two fixed dates
Assume an Orders table contains an OrderDate field. This query returns orders from January 1 through January 31, 2026:
SELECT OrderID, CustomerID, OrderDate
FROM Orders
WHERE OrderDate >= #1/1/2026#
AND OrderDate < #2/1/2026#
ORDER BY OrderDate;The exclusive upper boundary—earlier than February 1—is deliberate. It includes January 31 values such as 1/31/2026 4:30 PM. A criterion ending with <= #1/31/2026# includes midnight at the start of January 31 but can omit records later that day.
Use start and end date parameters
A parameter query can prompt the user for both dates. Declare the parameter types so Access treats the answers as Date/Time values rather than text:
PARAMETERS [Enter start date:] DateTime,
[Enter end date:] DateTime;
SELECT OrderID, CustomerID, OrderDate
FROM Orders
WHERE OrderDate >= [Enter start date:]
AND OrderDate < DateAdd("d", 1, [Enter end date:])
ORDER BY OrderDate;The DateAdd expression advances the supplied end date by one day and uses that value as an exclusive limit. This is a reliable pattern when OrderDate may include a time.
Filter the current month
Use DateSerial to calculate the first day of this month and the first day of the next month:
SELECT OrderID, CustomerID, OrderDate
FROM Orders
WHERE OrderDate >= DateSerial(Year(Date()), Month(Date()), 1)
AND OrderDate < DateSerial(Year(Date()), Month(Date()) + 1, 1)
ORDER BY OrderDate;This form also handles December correctly because DateSerial normalizes month 13 to January of the following year.
Enter the criteria in Query Design
- Open the query in Design View.
- Add the Date/Time field to the grid.
- In its Criteria row, enter the lower and upper comparison.
- For parameters, choose Design → Parameters and declare each prompt as Date/Time.
- Run the query and test records at the beginning and end of the period.
Common mistakes
- Using text fields for dates: store values in a Date/Time field whenever possible.
- Forgetting the time: use an exclusive next-day boundary for an inclusive end date.
- Leaving parameters untyped: explicit Date/Time parameters avoid ambiguous prompts and improve compatibility with crosstab queries.
- Filtering with formatted text: compare the original Date/Time field so indexes remain useful.
For more criteria examples, see Microsoft’s date criteria reference.