Проблема с запросом даты MySQL - PullRequest
1 голос
/ 22 августа 2011
mysql> desc persondb;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(25) | YES  |     | NULL    |       |
| lname  | varchar(25) | YES  |     | NULL    |       |
| mydate | datetime    | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> select * from persondb;
+------------+--------+---------------------+
| name       | lname  | mydate              |
+------------+--------+---------------------+
| vishwanath | dalvi  | 2011-08-21 14:50:37 |
| ishwar     | dalvi  | 2011-08-21 14:50:58 |
| ganesh     | kamble | 2011-08-31 14:50:37 |
+------------+--------+---------------------+
3 rows in set (0.00 sec)

mysql> select name,mydate from persondb
    -> where date_sub(now(),INTERVAL 5 DAY)<=mydate;
+------------+---------------------+
| name       | mydate              |
+------------+---------------------+
| vishwanath | 2011-08-21 14:50:37 |
| ishwar     | 2011-08-21 14:50:58 |
| ganesh     | 2011-08-31 14:50:37 |
+------------+---------------------+
3 rows in set (0.00 sec)

Я использую следующий запрос для получения записей, которые соответствуют интервалу последних 5 дней, но он показывает запись будущей даты, которая является ganesh | 2011-08-31 14:50:37

  mysql> select name,mydate from persondb
      -> where date_sub(now(),INTERVAL 5 DAY)<=mydate;

Кто-нибудь может сказать мне причину этого?

1 Ответ

4 голосов
/ 22 августа 2011
SELECT name,mydate FROM persondb
WHERE mydate BETWEEN DATE_SUB(NOW(),INTERVAL 5 DAY) AND NOW();

Причина, по которой ваш запрос показывает даты в будущем, заключается в том, что вы проверяете, является ли mydate более поздним или равным 5 дням назад. Дата 2011-08-31 14:50:37 выполняет это требование. Вы можете использовать BETWEEN, чтобы проверить, находится ли он в диапазоне между сейчас и 5 днями ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...