Try using a stored procedure, which takes a datetime parameter, instead of hand rolling the SQL (VB is probably converting the datetime to a string, and SQL converting it back to datetime - a recipe for disaster). Assuming your using ADO, create a command object in VB, with the added parameter (or if you're really lazy like me use the VB data environment).