I hukommelsesforespørgsler (QoQ'er) kan være vanskelige, når det kommer til datatyper. De er langt mindre vidende om implicitte datatypekonverteringer, end en database ville være. Ved at bruge MySQL's date_format
funktion, konverterer du faktisk datetime-værdierne til strenge . Så når du kører din QoQ, kan CF faktisk udføre en streng sammenligning, hvilket ville give meget andre resultater end en dato sammenligning. Kan forklare hvorfor du får de forkerte resultater.
Prøv at ændre din database forespørgsel for at returnere en datetime-værdi i stedet for en streng:
SELECT
COUNT(Timedetail) as Occurances
, STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM ....
WHERE ...
Opdatering:
En anden mulighed er at CAST værdien som en DATE
i din QoQ. Det ville tvinge QoQ til at udføre en datosammenligning i stedet for en strengsammenligning:
WHERE CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#"
cfsqltype="cf_sql_date">