본문 바로가기
MySql

MySQL DateTime 열을 시간이 아닌 날짜 만과 비교하는 방법

by 베이스 공부 2021. 2. 3.
반응형

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 프로그래머가 아닙니다.

 

해결 방법

 

날짜 또는 날짜 시간 표현식의 날짜 부분을 추출하는 DATE라는 mysql 함수가 있습니다.

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

편집 : 아래 주석에서 언급했듯이 조심하십시오. 이것을 사용하면 datetime 필드의 색인이 우회됩니다. 대신 사용해야합니다.

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

 

참조 페이지 https://stackoverflow.com/questions/11523367

 

 

반응형

댓글