Har du tidspunkter forbundet med dine dates? BETWEEN er inklusive, men når du konverterer 2013-10-18 til en dato, bliver det 2013-10-18 00:00:000.00. Alt, der er logget efter det første sekund af den 18., vises ikke med BETWEEN, medmindre du inkluderer en tidsværdi.
Prøv:
SELECT
*
FROM LOGS
WHERE CHECK_IN BETWEEN
CONVERT(datetime,'2013-10-17')
AND CONVERT(datetime,'2013-10-18 23:59:59:998')
hvis du vil søge hele dagen den 18. Jeg indstillede millisekunder til 998, fordi SQL Server trak ind 2013-10-19 00:00:00:0000 i forespørgslen.
SQL DATETIME-felter har millisekunder. Så jeg tilføjede 999 til feltet.