You could try making your query this way instead:
Dim myDate As DateTime = dtpTD.Value.Date
sql = String.Format("SELECT * FROM tbltransact WHERE YEAR(date) = {0} AND MONTH(date) = {1} AND DAY(date) = {2}", myDate.Year, myDate.Month, myDate.Day)
This will give you all the records in tbltransact table for the selected day, regardless of the time.
UPDATE
Be aware though that is is considered bad practice to compose your SQL statements this way. Even worse to mix your data layer code with your UI layer code. I suggest that you try and learn how ADO.NET works with parameters so that you can more safely pass values up to your queries.