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



所以现在我在我的网站上存储每次搜索的日期,就像这个

2011-06-07 21:44:01

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

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

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

您可以使用DATE()函数。

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

然而,为了获得更好的性能,您可以使用。。。

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

这应该有效:

mysql_query("SELECT tag from tags WHERE date LIKE '2011-06-07%'");
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

我知道即将发布的答案早就应该发布了,但它可以帮助可能遇到同样问题的人。

对于我的案例,我使用了:

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

它比使用DATE()函数更快。

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

相关内容

  • 没有找到相关文章

最新更新