Mysql выберите запрос не работает должным образом

0
SELECT * FROM 'customers' where warranty_end BETWEEN '01/12/2017' AND '31/12/2017'

приведенный выше мой запрос, в содержимом столбца warranty_end 30/12/2018.

Но запрос, полученный в результате строки из базы данных.

Изображение 174551

Теги:

1 ответ

2
Лучший ответ

Похоже, что ваш столбец warranty_end - это текст, и кроме того, вы сохраняете свои даты, есть формат, отличный от ISO. Одним из способов решения этой проблемы было бы преобразование текстовых дат в фактические даты с использованием STR_TO_DATE:

SELECT *
FROM customers
WHERE STR_TO_DATE(warranty_end, '%d/%m/%Y') BETWEEN '2017-12-01' AND '2017-12-31';

Обратите внимание, что предложение BETWEEN фактически использует литералы даты ISO.

Перемещение вперед гораздо лучший вариант будет хранить гарантии даты окончания в колонке даты, например, datetime.

  • 0
    сделано, спасибо ...
  • 0
    @sandeep Можете ли вы пометить этот ответ правильно? Зеленая галочка слева.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню