Click here to Skip to main content
15,881,803 members
Articles / Programming Languages / SQL
Tip/Trick

Accurate DATETIME Range Searching in SQL Server

Rate me:
Please Sign up or sign in to vote.
3.75/5 (4 votes)
9 Dec 2009CPOL 18.5K   10   4
When searching between datetimes in SQL(or SQL in a Stored Proc) we can't just do:select * from where CreateTime >= @DateFrom and CreateTime <= @DateToIf your search is date inclusive and you're not concerned with time, which most users aren't, then you need to add a little extra...
When searching between datetimes in SQL(or SQL in a Stored Proc) we can't just do:
SQL
select * from <table>
where CreateTime >= @DateFrom and CreateTime <= @DateTo

If your search is date inclusive and you're not concerned with time, which most users aren't, then you need to add a little extra code to get the right results. Basically, you need to add one day to @DateTo and trunc. Here's a Sql Server 2005 function that will help:

SQL
CREATE FUNCTION [dbo].[trunc]
(
    @dt datetime
)
RETURNS datetime
AS
BEGIN
            return dateadd(day, datediff(day, 0, @dt), 0);
END

Now your SQL should be:
SQL
select * from <table>
where CreateTime >= dbo.trunc(@DateFrom)
and CreateTime < dbo.trunc(@DateTo + 1)

If you want more info about this then go to: Accurate DATETIME Range Searching in SQL Server[^]

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer Currently working on projects for May Gurney
United Kingdom United Kingdom
Areas of expertise: c#, asp.net, design patterns, GUI useability/layout

Comments and Discussions

 
GeneralMy vote of 4 Pin
ali_heidari_23-Jul-12 17:54
ali_heidari_23-Jul-12 17:54 
QuestionWhat about... Pin
Peter Tewkesbury4-Dec-09 8:51
professionalPeter Tewkesbury4-Dec-09 8:51 
AnswerRe: What about... Pin
Mark Graham7-Dec-09 0:18
Mark Graham7-Dec-09 0:18 
GeneralRe: What about... Pin
supercat99-Dec-09 5:41
supercat99-Dec-09 5:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.