According to cdonner, in his answer here and on his blog.
He claims that BETWEEN with date yields inconsistent results
From his blog:
<
Just never ever use BETWEEN with datetime values. In MySQL I can do
created >= CURDATE() - INTERVAL 1 DAY AND created < CURDATE()
to limit created to (the whole of) yesterday.
With BETWEEN '2011-05-02' AND '2011-05-02 23:59:59' I would be gambling on one-second resolution, and would miss a created of '2011-05-02 23:59:59.001'.