função STR_TO_DATE não funciona no complexe joomla consulta mysql

votos
-3

Eu tenho uma bruxa consulta SQL retorna os 3 mais novas formações, mas does'nt trabalho depois de eu ter mudado o tipo de coluna fin_date de corda se atualizado com o formato específico:

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

mesmo eu mudá-lo para:

$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 
             ;
Publicado 18/12/2018 em 11:12
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Você não pode comparar uma data (a saída str_to_date), que será em Y-m-dformato internamente, para uma cadeia em d/m/Yformato. Você precisa se quer criar seu $todayvariável no Y-m-dformato usando

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

ou convertê-lo dentro de sua ie consulta

str_to_date(p.fin_date,'%d/%m/%Y') >= str_to_date($today,'%d/%m/%Y')
Respondeu 18/12/2018 em 11:59
fonte usuário

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