ВЫБЕРИТЕ дату в Mysql, возвращая неверные данные

Я бы предложил менеджер компоновки GridLayout . Он представляет собой самое простое решение для показа наглядной визуализации элементов управления метками и текстовыми полями. Таким образом, вы просто определяете количество строк и столбцов во время создания экземпляра, а добавленные элементы управления будут обрабатываться менеджером.

1
задан Strawberry 28 February 2019 в 20:05
поделиться

1 ответ

Ваша проблема в этой части предложения WHERE:

AND (pedido_data >= $data1 AND pedido_data <= $data2) 

Поскольку вы не можете получить доступ к псевдонимам в предложении WHERE, MySQL использует исходное значение столбца даты в этом тесте, и поэтому сравнение происходит как текст, а не как дата. Вам нужно изменить эту строку на

AND STR_TO_DATE(p.pedido_data,'%d/%m/%Y') BETWEEN '$data1' AND '$data2'

Обратите внимание также на добавление кавычек вокруг значений $data1 и $data2 (в противном случае 2019-02-28 интерпретируется буквально как 1989).

Обратите внимание, что если бы вы назвали свой псевдоним чем-то, отличным от того же имени, что и столбец, вы бы получили сообщение об ошибке MySQL в предложении WHERE при попытке выполнить запрос, который немедленно показал бы проблему. [1111 ]

0
ответ дан Nick 28 February 2019 в 20:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: