Функция str_to_date не работает в сложном MySQL запросе Joomla

У меня есть SQL-запрос ведьма возвращает 3 новейших формаций, но он не работает после того, как я изменил тип столбца fin_date со строки на дату в определенном формате:

   $today = JFactory::getDate()->toFormat('%d/%m/%Y');
// echo $today==> 18/12/2018

$query =  "SELECT p.fin_date, pfr.product_name, p.ville"." FROM #__virtuemart_products as p"." LEFT JOIN #__virtuemart_products_fr_fr as pfr on pfr.virtuemart_product_id = p.virtuemart_product_id"." WHERE p.published = 1   AND  p.product_parent_id != 0 AND str_to_date(p.fin_date,'%d/%m/%Y') >= $today "." LIMIT 4 ";

даже я изменяю это на:

$query =  "SELECT str_to_date(p.fin_date,'%d/%m/%Y'), pfr.product_name, p.ville"." FROM #__virtuemart_products as p"." LEFT JOIN #__virtuemart_products_fr_fr as pfr on pfr.virtuemart_product_id = p.virtuemart_product_id"." WHERE p.published = 1   AND  p.product_parent_id != 0 AND str_to_date(p.fin_date,'%d/%m/%Y') >= $today "." LIMIT 4 ";

-3

Решение

Вы не можете сравнить дату (вывод str_to_date), который будет в Y-m-d внутренне отформатировать в строку d/m/Y формат. Вам нужно либо создать свой $today переменная в Y-m-d форматирование с использованием

$today = JFactory::getDate()->toFormat('%Y-%m-%d');

или преобразовать его в ваш запрос, т.е.

str_to_date(p.fin_date,'%d/%m/%Y') >= str_to_date($today,'%d/%m/%Y')
1

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

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

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