2016-06-15 7 views
1

날짜 시간 열을 날짜로 변환하고 특정 날짜의 모든 행을 가져 오려고합니다. 그러나 그것을 시도 할 때. 쿼리는이 코드 일 (a. refresh_time) = '2016년 6월 11일'MySQL에서 날짜 필터

+0

데이터를 표시하고 실제 쿼리 (또는 둘 모두의 합리적인 팩시밀리)를 사용하면 도움이됩니다. – Uueerdo

+0

너무 끔찍하지 않습니다. 그의 코드에는 back-tick이 있기 때문에 질문의 서식을 신랄하게 만듭니다. 어쩌면 당신은 그 데이터가 부족하거나, 당신은 11 월 6 일 영국인입니다. – Drew

답변

0

하지 마십시오에 이상이 뭐야 0 행을 반환! Answer from @scaisEdge와 같은 WHERE 절의 필드에 함수를 사용하십시오. 이 샘플처럼 MySQL이 테이블의 모든 행을 읽어야 만 함수로 변환 한 다음 비교할 수 있습니다. 이

SAMPLE

WHERE `a`.`refresh_time` >= '2016-06-11 00:00:00' AND `a`.`refresh_time` <= '2016-06-11 23:59:59'; 

또는

WHERE `a`.`refresh_time` BETWEEN '2016-06-11 00:00:00' AND '2016-06-11 23:59:59'; 

그래서 MySQL을 지시 할 수있다 사용 유사한 사용하는 것이 더 빠르게 경우 그리고 그것은 인덱스를

을 사용할 수 없습니다 결코 INDEX를 사용하여 올바른 행 찾기

SELECT 전에 EXPLAIN을 사용하여 테스트 할 수 있습니다.

0

를 사용하여 올바른 DATE_FORMAT

where date_format(`a`.`refresh_time`'%Y-%m-%d') = '2016-06-11' 
+0

고맙습니다! – user1721546

+0

나에게 감사하고있는 것. .. 당신이 나의 anser가 유용하다고 생각하면 그것을 평가할 수있다. – scaisEdge