2014-11-20 2 views
0

날짜 사이에 행을 선택하는 쿼리가 있습니다. 다른 결과를 반환하는 MySQL 날짜 비교

SELECT * FROM `table` WHERE statusDate >= '2014-10-01' AND statusDate <= '2014-10-31' 

내가 다음 쿼리보다 훨씬 적은 행을 반환 위의 쿼리를 사용

...

SELECT * FROM `table` WHERE statusDate > '2014-09-30' AND statusDate < '2014-11-01' 

기술적으로는 나는 동일한 결과를 반환 생각 싶지만 그것은 아니다.

아래쪽 쿼리에 대한 내 이해는 명시된 날짜의 위와 아래 날짜를 포함하는 것입니다. 결과가 다른 이유는 무엇입니까?

+0

결과에서 다른 무엇입니까? 결과 및 필드 유형에 대한 정보를 공유 할 수 있습니까? –

+0

'statusDate'는'DATE' 또는'DATETIME'입니까? 'DATETIME'이라면 다른 결과를 얻습니다. – Barmar

+0

statusDate는 DATETIME이므로 사용자의 대답은 완전한 의미를 갖습니다. 고맙습니다. – Adam

답변

0

statusDateDATETIME 인 경우 시간은 그 달의 마지막 날의 행에 대해 결과가 달라집니다. 2014-10-31DATETIME으로 변환하면 2014-10-31 00:00:00이됩니다. statusDate2014-10-31 09:23:11 인 행이있는 경우 첫 번째 쿼리에서는 선택되지 않지만 두 번째 쿼리에서는 선택됩니다.

WHERE statusDate >= '2014-10-01' AND DATE(statusDate) <= '2014-10-31' 

을하거나 WHER 절에 시간을 추가 할 수 있습니다 :

당신은 사용하여이 문제를 해결할 수

WHERE statusDate >= '2014-10-01' AND statusDate <= '2014-10-31 23:59:59'