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 に答える