BETWEEN
구문 에서 두 번째 날짜 참조 는 마술처럼 "날의 끝"으로 간주되지만 이는 사실이 아닙니다 .
즉, 이것은 예상되었다 :
사례 선택 *
WHERE BETWEEN created_at 의 시작 '2013년 5월 1일'AND 의 끝 '2013년 5월 1일'
그러나 실제로 일어나는 일은 다음과 같습니다.
사례 선택 *
'2013-05-01 00 : 00 : 00 + 00000 '과 '2013-05-01 00 : 00 : 00 + 00000 '
사이에 created_at이 (가) 있습니다
다음과 같습니다.
SELECT * FROM Cases where WHERE created_at = '2013-05-01 00 : 00 : 00 + 00000 '
문제에 대한 인식 / 기대 중 하나입니다 BETWEEN
어느 않습니다 낮은 값과 범위의 상단 값을 모두 포함하지만, 하지 않는 마술 날짜가 또는 "말" "의 시작"합니다.
BETWEEN
날짜 범위별로 필터링 할 때는 사용하지 않아야합니다.
항상>= AND <
대신 사용하십시오
사례 선택 *
어디에 (created_at > = '20130501' 그리고 created_at < '20130502')
여기서 괄호는 선택 사항이지만 더 복잡한 쿼리에서 중요 할 수 있습니다.