Непонятное поведение конструкции between при сравнении дат

Непонятное поведение конструкции between при сравнении дат

Много писать не буду, приведу сразу результат выборки:
Код:
SELECT NOW(),
       `date`,
       DATE_SUB(NOW(), INTERVAL 24 HOUR),
       date BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL 24 HOUR )
       NOW() < `date` < DATE_SUB(NOW() , INTERVAL 24 HOUR)
FROM...
Код:
NOW()               | date                | DATE_SUB(NOW(), INTERVAL 24 HOUR) | date BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL 24 HOUR) | NOW() < date < DATE_SUB(NOW(), INTERVAL 24 HOUR)
2009-08-25 17:44:03 | 2009-08-24 19:36:31 | 2009-08-24 17:44:03               | 0                                                        | 1
2009-08-25 17:44:03 | 2009-08-24 19:45:45 | 2009-08-24 17:44:03               | 0                                                        | 1
Смысл запроса в том, чтобы проверить, входит ли `date` в интервал между NOW() и NOW() - 24 часа, короче типа "за последние сутки".
А вот почему конструкция BETWEEN "врёт" моя совсем не понимать, однако...
 

baev

‹°°¬•
Команда форума
Ничего, что именно при BETWEEN (в отличие от остальных случаев) Вы date используете без «бэктиков»?
 

vovanium

Новичок
В битвине сначала должно идти меньшее значение диапазона, а потом большее. В доках даже пример есть
Код:
mysql> SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;
        -> 1, 0
 
Мой небосвод хрустально ясен, и полон радужных картин, не потому что мир прекрасен, а потому что я кретин... ))
Ваш ответ правильный ))
Спасибо !
 
Сверху