所以现在我在我的网站上存储每次搜索的日期,就像这个
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")