The SQL datetime type stores a value like
Let’s say you have a table called ‘Log’ and you log actions to it and pass in the date time which is stored in the ‘LogDate’ column (type = datetime).
It will have rows with values like
Now you want to get the rows from the table from ’06/25/2013′ so you preform a query like
Select * from Log where LogDate = ’06/25/2013′
You expect 3 rows of data, but you get none because the above query would only return rows where the Date field was ‘ 2013-06-25 00:00:00.000 ‘.
2 methods I like to solve this are either change the query to
Select * from Log where LogDate >= ’06/25/2013’
AND LogDate < ’06/26/2013
OR, I would create a Stored Proceduret that has in input parameter of type ‘date’ (not datetime).
Create PROCEDURE [dbo].[usp_SelectAllLogsByDate]
@myDate date /*Don’t use datetime here or your are back to the original problem*/
Select * FROM [Log]
where (Date = @myDate)
There are other solutions using the date functions in SQL however, but these are 2 quick and simple solutions.