2014-02-20 4 views
0

저는 테이블에 created_at라는 시간 소인 필드가 있습니다. 내가 어디 시간을 스탬프에서 날짜가 현재 날짜입니다 데이터를 줄 것이다 쿼리를 작성하려고합니다.mySQL이 현재 날짜와 시간 소인을 비교합니다.

$result = mysql_query("SELECT *FROM visitors WHERE DATE(FROM_UNIXTIME(created_at)) = 
CURDATE()") or die(mysql_error()); 

나는 DATE (FROM_UNIXTIME (created_at))를 사용하고 왜 타임 스탬프에서 날짜를 가져 오는 방법을 보았다. 내 쿼리는 아무것도 발견되지 않고 다시 돌아 오지만, 오늘 데이터베이스 인 created_at 필드가 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

쿼리가 정확합니다. 항목이없는 다른 이유가 있어야합니다. – pilsetnieks

+0

나는 그것이 unixtimestamp가 아닌 것으로 의심한다 –

+0

@ 대 건 무엇을 의미하니? – Aaron

답변

1

시간 소인 데이터 유형에는 초가 포함되므로 시간이 절대 일치하지 않습니다. 비교하기 전에 "created_at"타임 스탬프와 현재 날짜/시간 (now())에서 초를 잘라서 날짜 부분 만 일치시킬 기회가 있어야합니다. 예 :

select * from visitors where DATE_FORMAT(created_at,'%Y%c%d')=DATE_FORMAT(now(),'%Y%c%d') 
+0

mysql DATE() 함수는 무엇을합니까? –

+0

날짜 기능은 타임 스탬프에서 날짜가 아닌 정보를 잘라 내기로되어 있습니다. – Aaron

+0

그런 다음 방문자의 date (created_at), date (now(), date (FROM_UNIXTIME (created_at))를 선택하고 열을 시각적으로 비교하여 어떻게 다른지 확인하십시오 동일한 열을 산출하는 구문에 where 절을 사용하십시오. –

관련 문제