Выберите временную метку по времени, игнорируя дату

#mysql #select #time #timestamp

#mysql #выберите #время #временная метка

Вопрос:

Я пытаюсь «ВЫБРАТЬ» временной диапазон, игнорируя часть даты в поле «Временная метка» (09-09-11 10: 23:03).

Приведенный ниже запрос работает, но имеет огромные затраты на производительность…

 SELECT * FROM Table WHERE Time LIKE '10:09:13'
  

Какой самый быстрый способ сделать это в таблице с 1/2-1 миллионами строк без использования команды «LIKE»?

Ответ №1:

 SELECT * FROM Table WHERE TIME(Time) = '10:09:13'
  

Это должно сработать.

Комментарии:

1. Вау, это работает намного быстрее, чем ХОТЕЛОСЬ бы. Спасибо за ваш быстрый ответ.

2. LIKE полагался на неявное приведение вашего TIMESTAMP к VARCHAR , что является дорогостоящим. Этот параметр использует естественный тип временной метки, следовательно, работает быстрее.