所以现在我正在存储我网站上每次搜索的日期
2011-06-07 21:44:01
现在我想执行一个查询来选择日期等于任何值的所有值,但只考虑年/月和日,所以它就像
mysql_query("SELECT tag from tags WHERE date = '2011-06-07'");
但是它不应该考虑确切的时间(小时分钟),有没有办法做到这一点?
答案 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")