Heb je tijden gekoppeld aan je dates? BETWEEN is inclusief, maar wanneer u 2013-10-18 naar een datum converteert, wordt het 2013-10-18 00:00:000.00. Alles wat na de eerste seconde van de 18e wordt gelogd, wordt niet weergegeven met BETWEEN, tenzij u een tijdwaarde opneemt.
Probeer:
SELECT
*
FROM LOGS
WHERE CHECK_IN BETWEEN
CONVERT(datetime,'2013-10-17')
AND CONVERT(datetime,'2013-10-18 23:59:59:998')
als u de hele dag van de 18e wilt zoeken. Ik heb milliseconden ingesteld op 998 omdat SQL Server in 2013-10-19 00:00:00:0000 in de query aan het trekken was.
SQL DATETIME-velden hebben milliseconden. Dus ik heb 999 aan het veld toegevoegd.