Try a different tack when dealing with dates:
SELECT * FROM LOG WHERE datefield BETWEEN $date AND DATEADD(d, 1, $date) ORDER BY $sort
IIRC, LIKE should only be used on character data. You may be invoking an implicit CAST to a character type when you use LIKE on a date. (I guess when MSSQL CASTs a date to a string, it uses a locale-based format, which would possibly explain why you're getting 14th of May etc.)