It is working. Because:
DATE_SUB(NOW(), INTERVAL 1 DAY) -- a day less than now is yesterday
is LOWER THAN
NOW() -- it is now, means today with current time
So comparison would be like
between yes'day and today
which is valid
Pergunta
Hi I am comparing two dates using mysql between
function. My query looks like
select count(id) as total
from table
where user_id=111
and date_column BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY)
and NOW()
In between part of this query it is BETWEEN upperdate and lowerdate
. It is working fine. But I went to verify this function on mysql documentation https://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between . It says it should be
`BETWEEN LOWER AND UPPER`
Current I am doing in reverse and it is working fine but I just want to verify that is it rite and it will cause in problem in future and any hidden case.
Solução
It is working. Because:
DATE_SUB(NOW(), INTERVAL 1 DAY) -- a day less than now is yesterday
is LOWER THAN
NOW() -- it is now, means today with current time
So comparison would be like
between yes'day and today
which is valid
Outras dicas
BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) and NOW()
is in other words
BETWEEN yesterday AND today
So it is
BETWEEN lower AND upper
No wonder it's working :)