Date column has type is string (varchar, nvarchar, ...). So, when you select this column with between clause, SQL cannot select exactly the result which you want.
Notice that, between clause only apply to some datatype, such as DateTime, SmallDateTime, int,... (datetime and Number only).
Please cast Date column into datetime before querying
SELECT Date FROM CashBook WHERE cast(Date as datetime) BETWEEN '...a from date here' AND '...a to date here'
Andy