2011-03-11 5 views
0

MySql 테이블에 datetime의 열이 있습니다. 저장된 값은 다음과 같습니다.datetime 열을 기반으로 한 쿼리 레코드

2008-02-15 17:21:56 
2008-02-15 17:22:02 
2008-02-15 17:22:03 

이제이 열을 기반으로 일부 레코드를 쿼리하고 싶지만 날짜 부분 만 시간 부분이 아닙니다. 그래서 나는 zend에서 이것을 질의합니다.

$select->where('tableName.columnName = ?', '2008-02-15'); 

그러나 어떤 레코드와도 일치하지 않습니다. 어떻게하면 시간없이 쿼리 할 수 ​​있습니다.

감사

답변

3

그러나 그것은 인해 DATE 함수는 모든 행에서 호출하는 데에 날짜 컬럼에 어떤 인덱스를 사용하는 MySQL을 방지 할 수, @Shota이 작동 제공하고이 WHERE DATE(tableName.columnName) = '2008-02-15'

+0

작동 중입니다. 감사합니다 – Awan

2

대답을 시도 표가 일치하는지 확인하십시오.

시간 범위를 쿼리에 하드 코딩하면 동일한 결과를 얻을 수 있지만 여전히 인덱스를 사용할 수 있습니다.

예 : $select->where('tableName.columnName >= ? AND tableName.columnName <= ?', '2008-02-15 00:00:00', '2008-02-15 23:59:59');

PHP 구문이 잘못되었을 수 있습니다.하지만 생각을해야합니다.

+0

감사. 어떤 경우에는 좋은 해결책이기도합니다. – Awan

관련 문제