In SQL round the start and end date to Whole Dates and use >= @BeginDate and very specifically < @EndDAte. The "rounding" process is not very elegant I'm afraid
e.g.
SELECT @BeginDate = DATEADD(Day, DATEDIFF(Day, 0, @BeginDate), 0),
@EndDAte = DATEADD(Day, DATEDIFF(Day, 0, @EndDAte) + 1, 0)
select *
from weblogs.dbo.vwlogs
where Log_time >= @BeginDate
and Log_time < @EndDAte
and (@UserName Is null OR client_user=@UserName)
order by Log_time desc
Note that I've moved "@UserName Is null" first, as there is some evidence that this test will easily pass/fail, and will cause the second more CPU intensive test (client_user=@UserName) to be ignored if the first test is TRUE (may be TommyRot of course ...)
Also, for best performance, you should explicitly name all the columns you need, and not use "SELECT *" (but that may just have been for the purpose of this question)