sql >> Databasteknik >  >> RDS >> Mysql

Får inte önskad utdata efter att ha kört en QoQ

I minnesfrågor (QoQ's) kan det vara knepigt när det kommer till datatyper. De är mycket mindre kunniga om implicita datatypkonverteringar än en databas skulle vara. Genom att använda MySQL:s date_format funktion, konverterar du faktiskt datetime-värdena till strängar . Så när du kör din QoQ kan CF faktiskt utföra en sträng jämförelse, vilket skulle ge mycket andra resultat än ett datum jämförelse. Kan förklara varför du får fel resultat.

Försök att ändra din databas fråga för att returnera ett datetime-värde istället för en sträng:

SELECT 
   COUNT(Timedetail) as Occurances
   , STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM   ....
WHERE  ...

Uppdatering:

Ett annat alternativ är att CAST värdet som en DATE i din QoQ. Det skulle tvinga QoQ att utföra en datumjämförelse istället för en strängjämförelse:

WHERE  CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#" 
                                          cfsqltype="cf_sql_date"> 


  1. jQuery Autokomplettera Mysql PHP

  2. Välj N slumpmässiga poster per grupp

  3. MySQL-konkatenering och olaglig blandning av sorteringsfel

  4. Hur LN() fungerar i MariaDB