MySql-запрос для выбора записей с определенной датой - PullRequest
28 голосов
/ 08 июня 2011

так что сейчас я сохраняю дату каждого поиска, выполненного на моем сайте, как это

2011-06-07 21:44:01

Теперь я хотел бы выполнить запрос, чтобы выбрать все значения, где дата равначто угодно, но учитываются только год / месяц и день, поэтому это будет похоже на

mysql_query("SELECT tag from tags WHERE date = '2011-06-07'");

, но оно не должно учитывать точное время (часы, минуты, секунды), есть ли способсделать это?

Ответы [ 4 ]

56 голосов
/ 08 июня 2011

Вы можете использовать функцию DATE().

SELECT `tag`
  FROM `tags`
 WHERE DATE(`date`) = '2011-06-07'

Однако для повышения производительности вы можете использовать ...

  WHERE `date` 
BETWEEN '2011-06-07'
    AND '2011-06-07 23:59:59'
5 голосов
/ 08 июня 2011

Это должно работать:

mysql_query("SELECT tag from tags WHERE date LIKE '2011-06-07%'");
1 голос
/ 08 июня 2011
mysql_query("SELECT tag from tags WHERE DATE(`date`) = '2011-06-07'");

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date

0 голосов
/ 28 мая 2018

Я знаю, что ответ, который я собираюсь опубликовать, давно назрел, но он может помочь кому-то, кто может столкнуться с той же проблемой.

В моем случае я использовал:

SELECT * 
FROM tablename 
WHERE dateCol >= date("2017-11-01") 
AND dateCol < date("2017-11-01") + INTERVAL 1 DAY;

Это быстрее, чемиспользуя функцию DATE ().

Если вы используете хранимую процедуру, вы можете передать дату в виде строки и предоставить ее в качестве аргумента вместо ("2017-11-01")

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