Avez-vous des heures associées à vos dates ? BETWEEN est inclus, mais lorsque vous convertissez 2013-10-18 en une date, il devient 2013-10-18 00:00:000.00. Tout ce qui est enregistré après la première seconde du 18 ne sera pas affiché en utilisant BETWEEN, sauf si vous incluez une valeur temporelle.
Essayez :
SELECT
*
FROM LOGS
WHERE CHECK_IN BETWEEN
CONVERT(datetime,'2013-10-17')
AND CONVERT(datetime,'2013-10-18 23:59:59:998')
si vous voulez rechercher toute la journée du 18. J'ai défini les millisecondes sur 998 car SQL Server extrayait le 19/10/2013 00:00:00:0000 dans la requête.
Les champs SQL DATETIME ont des millisecondes. J'ai donc ajouté 999 au champ.