2012-07-05 2 views
0

Я выбираю записи, которые имеют определенную дату в столбце datetime, но он чувствует себя немного неряшливо, и мне интересно, есть ли лучший способ. Мой запрос выглядит так:выберите все записи, имеющие определенную дату: более простой способ?

SELECT * 
FROM  myTable 
WHERE event_datetime 
BETWEEN '2012-05-05 00:00:00' AND '2012-05-05 23:59:59' 

и он отлично работает. Мне просто интересно, может быть, есть лучший способ сделать это в mySQL.

ответ

1

Лучше с какой точки зрения?

Можно было бы использовать DATE(event_datetime) = '2012-05-05', но это ужасно неэффективно.

Так продолжать использовать решение и убедитесь, что event_datetime столбец покрывается индексом

+0

его проиндексировано ... - Я не знал о функции DATE(), но, по-видимому, это не очень хороший выбор для ее использования. Благодаря :) – Will

0

Используйте функцию DATE в столбце в разделе where.

Например:

SELECT * 
FROM  myTable 
WHERE DATE(event_datetime) = '2012-05-05' 
0

Вы могли бы сделать WHERE date(event_datetime) = '2012-05-05', но этот способ не может использовать индекс на event_datetime, так что если вы хотите использовать индекс event_datetime, использовать оригинал путь.

Смежные вопросы