Ich kenne ADS nicht, aber vergleicht man daten nicht mit 'BETWEEN'?
Ich mache es immer so:
Select * from MyTable Where MyDateTimeColumn Between :Date and :DateNextDay
Von Delphi aus:
Delphi-Quellcode:
...
MyQuery.Params.ParamValues['Date'] := MyDate;
MyQuery.Params.ParamValues['DateNextDay'] := MyDate+3599/3600; // also nicht ganz + 1 Tag, sondern +23:59
...
'Between' hat den Vorteil, das ein eventueller Index voll zur Geltung kommt. Nur die besten Optimierer erkennen bei einem Cast auf ein VarChar und eine Filterung per 'LIKE', das ein Index verwendet werden kann. Between dagegen ist hier optimal.