У меня есть 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 ";
Вы не можете сравнить дату (вывод 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')
Других решений пока нет …