2014-03-01 2 views
-1

다른 달의 날짜를 선택하고 쿼리에서 date_format을 사용하는 중 오류가 발생했습니다.MYSQL - 날짜 범위를 선택하는 중 오류가 발생했습니다

'call_date'라는 타임 스탬프 열이있는 레코드가 있으며 값은 '2014-02-26 13:33:20'입니다.

나는 실행하면 :

SELECT * FROM survey_answer WHERE DATE_FORMAT(call_date,'%d/%m/%Y') BETWEEN '22/02/2014' AND '28/02/2014' 

결과는 내가 기대했던 선이다.

그러나, 나는 실행하는 경우 : 결과가 없습니다

SELECT * FROM survey_answer WHERE DATE_FORMAT(call_date,'%d/%m/%Y') BETWEEN '22/02/2014' AND '01/03/2014' 

.

+0

왜 날짜를 가져 와서 비교 목적으로 문자열로 변환합니까? –

답변

0

날짜에 관한 MySQL의 내부 형식은 YYYY-MM-DD HH-MM-SS이고 DD-MM-YYYY이 아니라는 점에 유의하십시오. 적절하게 변경하면 제대로 작동합니다.

SELECT * 
FROM survey_answer 
WHERE call_date > "2014-02-22 00:00:00" AND 
    call_date < "2014-03-01 23:59:59" 

do not want to use BETWEEN on timestamps입니다.

+1

오른쪽 .. 그게 내가 따라온 길이다. 고마워! – aemerich

0

필드에 functoin을 사용하고 있으므로 쿼리에서 인덱스를 사용하지 않습니다.

SELECT * 
FROM survey_answer 
WHERE call_date BETWEEN '2014-02-22' AND '2014-02-25' 

클라이언트 측에서 날짜의 서식을 지정할 수 있습니다.

관련 문제