MYSQL: между или равно

Почему это не работает, если мои оба значения одинаковы, я уже использую с равным оператором. Пользователь должен выбрать дату из & до, если пользователь выбирает обе одинаковые даты из & к которому 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')

Это работает только если есть интервал между датами

3

Решение

Если бы я должен был угадать, это потому, что 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;

Это лучше, потому что он все еще позволяет использовать индекс.

5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector