Код: Выделить всё
mysql> SELECT count(1) FROM log WHERE ( dst_email LIKE '%user@domain.%' ) AND (`date-time` BETWEEN '2007-06-30' AND '2007-07-01' + INTERVAL 1 DAY) AND `size` IS NULL;
+----------+
| count(1) |
+----------+
| 178 |
+----------+
1 row in set (0.05 sec)
mysql> SELECT count(1) FROM log WHERE ( dst_email LIKE '%user@domain.%' ) AND (`date-time` BETWEEN '2007-06-31' AND '2007-06-31' + INTERVAL 1 DAY) AND `size` IS NULL;
+----------+
| count(1) |
+----------+
| 178 |
+----------+
1 row in set (0.06 sec)
Во втором на 31 июня(такой даты нет в базе) и выборка отображает с 30 по 1. В чём прикол?
Разбираясь дальше нашёл вот что:
Код: Выделить всё
select '2007-06-31' + INTERVAL 1 DAY;
+-------------------------------+
| '2007-06-31' + INTERVAL 1 DAY |
+-------------------------------+
| 2007-07-02 |
+-------------------------------+
1 row in set (0.00 sec)