fonction str_to_date ne fonctionne pas dans mysql requête joomla complexe

voix
-3

J'ai une sorcière de requête SQL retourne les 3 formations les plus récentes, mais il Does'nt travail après avoir modifié le type de colonne fin_date de chaîne à ce jour avec le format spécifique:

   $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 
             ;

même je change à:

$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 
             ;
Créé 18/12/2018 à 11:12
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous ne pouvez pas comparer une date (la sortie str_to_date), qui sera en Y-m-dforme interne, à une chaîne en d/m/Yformat. Vous devez soit créer votre $todayvariable Y-m-dformat à l' aide

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

ou le convertir dans votre requête c.-à-

str_to_date(p.fin_date,'%d/%m/%Y') >= str_to_date($today,'%d/%m/%Y')
Créé 18/12/2018 à 11:59
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more