MySql查询选择具有特定日期的记录

时间:2011-06-08 01:36:24

标签: mysql datetime

所以现在我正在存储我网站上每次搜索的日期

2011-06-07 21:44:01

现在我想执行一个查询来选择日期等于任何值的所有值,但只考虑年/月和日,所以它就像

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

但是它不应该考虑确切的时间(小时分钟),有没有办法做到这一点?

4 个答案:

答案 0 :(得分:56)

您可以使用DATE()功能。

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

但是,为了获得更好的性能,您可以使用......

  WHERE `date` 
BETWEEN '2011-06-07'
    AND '2011-06-07 23:59:59'

答案 1 :(得分:5)

这应该有效:

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我知道即将发布的答案已经过期,但它可以帮助可能遇到同样问题的人。

对于我的情况,我用过:

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

比使用DATE()函数更快。

如果您使用的是存储过程,则可以将日期作为字符串传递,并将其作为参数提供,以代替("2017-11-01")