Not sure what exactly your intention yet. But if you pay close attention,
CAST('2017-02-19 12:09:13.560' AS Date) return 2017-02-19 (by default the time is
00:00:00.000) and clearly 2017-02-19 00:00:00.000 is not greater than or equal to 2017-02-19 12:09:13.560
This might do the trick.
SELECT * FROM Bill b WHERE
B.[Date] >= CONVERT(VARCHAR(120), '2017-02-08 12:07:40.330', 120)
AND
B.[Date] <= CONVERT(VARCHAR(120), '2017-02-19 12:09:13.560', 120)
Or
SELECT * FROM Bill b WHERE
CAST(B.[Date] AS Date) BETWEEN CAST('2017-02-08' AS Date)
AND
CAST('2017-02-19' AS Date)