select ... from ... where <datefield> >= @fromdate and <datefield> < @todate
I've not given the entire code, just some skeleton ones, so you may want to make necessary changes. Pls change getdate() in the initial 2 selects to appropriate date you want. also note that that they would be defaulted to 12:00AM which could result in more data being returned.
On the other hand if you use
select ... from ... where <datefield> >= getdate() and <datefield> < dateadd(day, 1, getdate())
result set could be different because this will result in actual time on the server correct to microseconds & if that's how data is stored in dbase result set could fluctuate. You can also use "between" clause instead of >= & <.
There's no datesubtract function, however you can use negative numbers in dateadd clause which will result in date being subtracted, something like
when you're using >= < always have end date 1 day more than what you expect to see. so if you want to see 01/07/06 have todate as 01/08/06 and < will ensure that 07 is included as well. this is better than using >= & <=. Alternatively you can try with between clause as well, however in this case todate need not be incremented by 1.
select ... from ... where datefield between "12/17/2005" and "01/07/2006"
check which approach gives the desired output w/o any compromise in performance.