5

我正在使用 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 程序员。

4

3 回答 3

20

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

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

编辑:小心,如下面的评论中所说,使用它会绕过日期时间字段的索引。您应该改用:

AND date BETWEEN '$today 00:00:00' AND '$today 23:59:59'
于 2012-07-17T13:23:48.847 回答
1

您可以像这样使用datediff函数:

AND datediff(`date`, '$today') = 0
于 2012-07-17T13:22:20.710 回答
0
date_format('%Y-%m', time()) 

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

于 2012-07-17T13:22:06.513 回答