Запрос записей на основе столбца даты и времени - PullRequest
0 голосов
/ 11 марта 2011

У меня есть столбец типа datetime в таблице MySql.Сохраненные значения выглядят так:

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' );

Но это не соответствует ни одной записи.Как я могу запросить без времени часть.

Спасибо

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

попробуйте WHERE DATE(tableName.columnName) = '2008-02-15'

2 голосов
/ 11 марта 2011

Ответ, предоставленный @Shota, будет работать, однако он не позволит MySQL использовать какие-либо индексы для столбца datetime из-за необходимости вызывать функцию DATE в каждой строке таблицы, чтобы проверить, соответствует ли она.

Если вы жестко запрограммируете временной диапазон в запросе, он даст тот же результат и при этом позволит использовать индексы.

например.$select->where('tableName.columnName >= ? AND tableName.columnName <= ?', '2008-02-15 00:00:00', '2008-02-15 23:59:59' );

Обратите внимание, что у меня может быть неправильный синтаксис php, но вы должны понять.

...