Почему это не работает, если мои оба значения одинаковы, я уже использую с равным оператором. Пользователь должен выбрать дату из & до, если пользователь выбирает обе одинаковые даты из & к которому 2017-08-13
все равно должны отображаться все даты 2017-08-13
и к сожалению не работает.
SELECT * FROM master_data.speed_of_service where
( trans_time >= '2017-08-13' and
trans_time <= '2017-08-13')
Это работает только если есть интервал между датами
Если бы я должен был угадать, это потому, что trans_time
имеет временную составляющую. Одно простое решение — извлечь дату:
SELECT ss.*
FROM master_data.speed_of_service ss
WHERE date(trans_time) >= '2017-08-13' and date(trans_time) <= '2017-08-13';
Лучшим решением было бы добавить один день к дате «до»:
SELECT ss.*
FROM master_data.speed_of_service ss
WHERE trans_time >= '2017-08-13' AND
trans_time < '2017-08-13' + interval 1 day;
Это лучше, потому что он все еще позволяет использовать индекс.
Других решений пока нет …