如何比较DateTime列与仅日期而不是时间

时间:2012-07-17 13:18:21

标签: mysql datetime

我正在使用mySql,我的表格列date是DATETIME类型

但我只想比较今天的日期而不是时间

       $today = date("Y-m-d",  time());

如果我使用上述方法比较日期,它总是出错。

$this->update("
UPDATE `stats_tracker` 
SET 
  `user_agent`='$this->visitor_user_agent' , 
  `referrer`='$this->referrer_page' , 
  `page_views`='$page_views' 
WHERE 
  `visitor_ip`='$this->visitor_ip' 
  AND `page`='$this->this_page' 
  AND `date`='$today'");

请帮助我,我不是一个好的mySQL程序员。

3 个答案:

答案 0 :(得分:18)

有一个名为DATE的mysql函数,它提取日期或日期时间表达式的日期部分

AND DATE(`date`)='$today'

编辑:请注意,如下面的评论所述,使用此功能将绕过datetime字段上的索引。您应该使用:

AND date BETWEEN '$today 00:00:00' AND '$today 23:59:59'

答案 1 :(得分:1)

您可以使用datediff这样的功能:

AND datediff(`date`, '$today') = 0

答案 2 :(得分:0)

date_format('%Y-%m', time()) 

可能是您需要用来进行比较的功能。