, 표현은
x BETWEEN a AND b
그대로
a <= x AND x <= b
이 a > b
경우이 상관없이 빈 결과를 얻을 수없는 것을 의미합니다.
즉, 주문은 중요합니다. x BETWEEN a AND b
을 사용할 때 a
은 < = b
이어야합니다.
당신을 위해 스왑 날짜를 의미한다 (뿐만 아니라 다른 오류를 수정) :
SELECT * FROM mytable
WHERE create_date BETWEEN '2011-10-14'
AND NOW() - INTERVAL 60 DAY
UPDATE : 기능을 DATE_SUB()
또는 DATE_ADD()
를 사용하는 방법에 대한 한 번 더 참고.
큰 테이블의 날짜를 비교해야하는 경우 일반적으로 이러한 기능을 사용하지 않아야합니다. 현대 MySQL은
DATE_SUB(create_date, INTERVAL 60 DAY)
create_date - INTERVAL 60 DAY
에 해당 최신 표준 +
및 -
연산자를 사용하여 연산, 그래서 표현을 지원뿐만 아니라이 쉽게 읽을 수 있지만, 그것은 또한 서버가 가능한 인덱스를 활용할 수 있습니다 create_date
열을 만들었습니다. 이 단축은 DATE_SUB()
과 같은 함수 호출에는 적용될 수 없습니다 - MySQL은 기능 인덱스를 지원하지 않습니다. 당신이이어야 할 필요가
출처
2013-05-17 05:22:11
mvp
는 somethihng .. –
이 참으로 내가 시도하려고하지만 create_date'입니다'DATE', 다음'경우에 당신이 가능성이 도움 – user1965816
을 retreive에 실패하여 'create_date> '60days'로 편집하는 것은 의미가 없습니다. 간격을 사용하여 날짜를 비교할 수 없습니다. – mvp