Sql search Результат между двумя датами - PullRequest
0 голосов
/ 09 января 2019

у меня есть имя таблицы ожидаемых расходов, в которой у меня есть 4 столбца с именем Expense_title, Amount, расходом_категории, датой и все 4 столбца имеют тип var char. Когда я пытаюсь найти счет между двумя датами, он отлично работает в том же году, например. 27.11.2008 и 27.12.2008, но это не дает никакого результата, когда я пытаюсь найти расходы в течение двух лет, например 27.12.2008 г. и 27.01.2009 г. пожалуйста помогите

Я пытаюсь этот запрос

SELECT *
from expected_expense
WHERE Date BETWEEN '$start_date' AND '$end_date'

1 Ответ

0 голосов
/ 09 января 2019

Согласно комментариям, это из-за типа varchar.

Оператор between ничем не отличается от выполнения двух закрытых неравенств для своих пределов диапазона. В вашем примере between 12/27/2018 And 01/27/2019

будет внутренне изменено на

>= 12/27/2018 and <= 01/27/2019

но это не даты, а текст. А второй меньше первого, поэтому ничего не будет возвращено. Это все равно что задавать вопрос: какое письмо следует за q, но перед b? Ни один.

Либо измените поля на datetime, либо используйте функции преобразования в вашем запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...